PDA

View Full Version : سوال: Query Cross



Masoud_Sa
شنبه 22 اسفند 1388, 20:47 عصر
با سلام به همه دوستان
من دو تا Table دارم که هیچ ارتباطی بین اونها وجود نداره ولی چندتا فیلدهاشون مثل هم هستند. Table1,Table2
Table2 زیر مجموعه Table1 هستش .
فرض کنید Table1 شامل اینها باشه.
{1,2,3,4,5,6,7,8,9} : Table1
{1,2,3} : Table2
Query Cross Join تمام اعداد رو نشون میده .
Select Distinct Table1.a,Table1.b,Table1.c,Table1.d,Table2.a,Table 2.b,Table2.c,Table2.d
From Table1 Cross Jion Table2

حالا من میخوام فیلدهایی که در Table1 هستند ولی در Table2 نیستند رو نشون بده.
چجوری این کوئری رو باید نوشت ؟:متفکر:

اگر به صورت مسئله ریاضی هم بهش نگاه کنیم میشه متمم اشتراک دو مجموعه .
لطفاً کمکم کنید .:افسرده:

AminSobati
شنبه 22 اسفند 1388, 22:57 عصر
سلام دوست عزیزم،
از INTERSECT استفاده کنید:

select column from t1
intersect
select column from t2

محمد سلیم آبادی
شنبه 22 اسفند 1388, 23:39 عصر
حالا من میخوام فیلدهایی که در Table1 هستند ولی در Table2 نیستند رو نشون بده.
چجوری این کوئری رو باید نوشت ؟:متفکر:




سلام دوست عزیزم،
از INTERSECT استفاده کنید:

select column from t1
intersect
select column from t2

سلام،
INTERSECT اشتراک دو مجموعه را بدست میاورد ولی OP می خواهن سطرهایی از جدول table1 را استخراج کنند که در table2 وجود ندارد.


SELECT t.* FROM table_1 AS t
INNER JOIN (SELECT column1, column2, column3 FROM table_1
EXCEPT
SELECT column1, column2, column3 FROM table_2) AS D
ON D.column1 = t.column1
AND D.column2 = t.column2
AND D.column3 = t.column3

برای تمام روش های حل این گونه مسائل این مقاله را مطالعه کنید:

http://www.30sharp.com/ShowArticle.aspx?nid=13&did=196&AuthorID=11

AminSobati
یک شنبه 23 اسفند 1388, 22:38 عصر
حق با شماست! تصور کردم اشتراک میخوان!