PDA

View Full Version : تولید رشته الگورتیمی که حدف میکند اما با شرط جمله دیگه ای



shahab_ksh
سه شنبه 01 اسفند 1385, 23:27 عصر
با سلام

ساده می پرسم امیدوارم جوابی بگیرم

دو جدول دارم یکی Blog و دیگری Blog_pm

در جدول Blog مثلا موضوعات روزانه یک وبلاگ وجود داره و نظرات بازدید کنندگان در Blog_pm

ذخیره میشه البته در جدول Blog یک فیلد منحصر به فرد ID وجود داره که به ازای هر نظر این

ID در فیلدی به نام ID_Subject در جدول Blog_pm ذخیره میشه

در Blog فیلد دیگه ای وجود داره به نام Type که فرض کنید یکی از مقادیر a, b, c

خوب حالا من میخام با یه جمله Sql جمله ای بنویسم که نظراتی در نوع a هستند حذف

شود

شاید بگید خوب مشکلی زیادی از این جمله استفاده کن

('DELETE FROM Blog_Pm Where ( Type='a

اما توجه کنید که فیلد Type در جدول Blog هستش نه در Blog_Pm

بعدش این به نظرم رسید

......DELETE FROM Blog_Pm,Blog

اما این دستور قابل قبول نشد دستور زیر به نظرم رسید که این هم درست نیست آیا کسی

راهی به ذهنش میرسه


DELETE FROM Blog_Pm Where ( Select * Blog_Pm,Blog Where ( Blog.Type='a' And Blog_Pm.ID_Subject=Blog.ID))

Kamyar.Kimiyabeigi
چهارشنبه 02 اسفند 1385, 08:39 صبح
DELETE FROM blog_pm
WHERE id IN (SELECT id FROM blog b
INNER JOIN blog_pm bp ON b.id = bp.id
WHERE b.type = 'a')

موفق باشید

shahab_ksh
چهارشنبه 02 اسفند 1385, 12:54 عصر
با سلام این پیام رو میده

Incorrect syntax near 'b'.

"DELETE FROM blog_pm WHERE id IN (SELECT id FROM blog b INNER JOIN blog_pm bp ON b.id = bp.ID_Subject WHERE b.type = @Type b.id=@ID)"

و یک سوال id که بعد از Where در قسمت اول جمله اول با id که بعد از سلکت جمله دوم بکار بردید چه رابطه ای داره و از کدام جدول گرفتید

zerobit-ltd
چهارشنبه 02 اسفند 1385, 13:16 عصر
این پیام رو میده

Incorrect syntax near 'b'.
تو بخش where، بین شرط هاتون عملگر منطقی قرار ندادید.


WHERE b.type = @Type [and|or|...] b.id = @ID
من query رو این جوری تصحیح می کنم:


delete
from Blog_PM
where ID_Subject in (select BPM.ID_Subject
from Blog B inner join Blog_PM BPM
on B.ID = BPM.ID_Subject
where B.Type = @Type_ID and
B.ID = @ID)

Kamyar.Kimiyabeigi
چهارشنبه 02 اسفند 1385, 14:47 عصر
با سلام این پیام رو میده

Incorrect syntax near 'b'.

"DELETE FROM blog_pm WHERE id IN (SELECT id FROM blog b INNER JOIN blog_pm bp ON b.id = bp.ID_Subject WHERE b.type = @Type b.id=@ID)"

و یک سوال id که بعد از Where در قسمت اول جمله اول با id که بعد از سلکت جمله دوم بکار بردید چه رابطه ای داره و از کدام جدول گرفتید

دوست عزیز من براتون یک Sample گذاشته بودم ، مسلماً با DB شما کار نمیکنه و Syntax Error میده