gpt4 book ai didi

sql - 在一张表中获取我们,英国,在另一张表中获取 cn 和 jp,但不要在两个表中获取 br

转载 作者:行者123 更新时间:2023-11-30 23:40:46 27 4
gpt4 key购买 nike

用国语,

countrycode | language  
US | English
BR | Portuguese
UK | English

在国名中,

countrycode | name  
CN | China
BR | Brazil
JP | Japan

“内部联接通过从联接表中选择匹配行的组合来生成结果。但是,它找不到不匹配项”

“左连接将左表(第一个命名的表)视为引用表,并为从中选择的每一行生成输出,无论该行是否与右表中的行匹配”

获取 us、uk、cn 和 jp,但不获取 br:

  • 内部联接找不到不匹配项(br <> br 不起作用)。
  • 外连接会在一个(us 和 uk)中找到所有内容或在另一个(cn 和 jp)中找到所有内容。

你使用两个外连接吗?

最佳答案

您所追求的称为 Full Outer JOIN,MySQL 对此没有明确的语法。使用:

SELECT cl.countrycode,
cl.language
FROM COUNTRYLANGUAGE cl
WHERE NOT EXISTS(SELECT NULL
FROM COUNTRYNAME cn
WHERE cn.countrycode = cl.countrycode)
UNION ALL
SELECT cn.countrycode,
cn.name
FROM COUNTRYNAME cn
WHERE NOT EXISTS(SELECT NULL
FROM COUNTRYLANGUAGE cl
WHERE cl.countrycode = cn.countrycode)

这是 a good reference link, with visual examples of various JOINs .

关于sql - 在一张表中获取我们,英国,在另一张表中获取 cn 和 jp,但不要在两个表中获取 br,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3240710/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com