【问题标题】:how to select data from primary key in a table when it's not equal to forign key in another table?当一个表中的主键不等于另一个表中的外键时,如何从主键中选择数据?
【发布时间】:2013-04-30 16:46:39
【问题描述】:

这是我所拥有的: 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

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

【问题讨论】:

    标签: mysql select join where


    【解决方案1】:

    你应该使用左连接:

    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 的所有行将返回国际代码中在 size_charts 表上没有匹配的所有行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-08
      • 2020-04-11
      • 2021-08-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多