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

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

4

1 回答 1

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

这将返回所有行,international_codes并且仅返回size_charts匹配的行。如果没有匹配,size_charts.int_code_id将为NULL。

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

于 2013-05-06T20:52:20.227 回答