数据库 请教一个 SQL

twm · 2014年09月20日 · 最后由 adslyw 回复于 2015年03月16日 · 1910 次阅读

A id | name 1 | abc

B name | country | aid | xyz | NULL | 1 xyz | cn | 1

想得到的结果是,当 Where country = 'cn' 有结果时,用 B 的第 2 行,没有 结果时,用 NULL 的记录。

select * from A join B on (B.aid = A.id) where B.country = 'cn' or country is NULL

这样会得到 2 行结果啊,能否不用 group 来分组去重?

可以使用 IF 控制语句。具体语法还要看你使用的是那种数据库。

select * from a join b on b.aid = a.id where b.contry = 'cn' or b.country is null order by b.country desc limit 1

需要 登录 后方可回复, 如果你还没有账号请 注册新账号