2013-05-06 25 views
1

这是我有: 1.我有一个名为“International_Codes”的表,有2列(int_code_id,desc) 2.我有另一个名为“size_charts”的表,它有(int_code_id,xs,s,m,l, xl)如何从表中的主键中选择数据,当它不等于在另一个表中键入键时?

我有一个“选择列表”,其中包含除“size_charts”表中已有列表外的所有“国际代码”。

这里就是我所做的:

SELECT international_codes.int_code_id, international_codes.desc 
FROM international_codes, size_charts 
WHERE international_codes.int_code_id <> size_charts.int_code_id 

它给我重复的条目和错误的数据。 我也尝试使用连接,但得到错误的数据。

回答

1

您应该使用LEFT JOIN:

SELECT international_codes.int_code_id, international_codes.desc 
FROM international_codes LEFT JOIN size_charts 
     ON international_codes.int_code_id = size_charts.int_code_id 
WHERE size_charts.int_code_id IS NULL 

将返回从size_charts匹配来自international_codes所有行,只有行。如果没有匹配,则size_charts.int_code_id将为NULL。

选择所有行,其中size_charts.int_code_id IS NULL将返回size_charts表上没有匹配的来自international_codes的所有行。

+0

是的,它像一个魅力,非常感谢@fthiella – CairoCoder 2013-05-06 20:55:27

+0

完美的代码,完美的解释。 :) – CairoCoder 2013-05-06 20:56:45

相关问题