mysql 關(guān)聯(lián)表查詢疑難解析
問題:
如何使用 mysql 查詢兩個(gè)表 a 和 b,以提取符合特定條件的記錄?
詳細(xì)說明:
表 a 的結(jié)構(gòu)如下:
a --------------------- | id | outer_id | ... | --------------------- | 1 | 1 | ... | | 2 | 1 | ... | | 3 | 2 | ... | | 4 | 4 | ... | | 5 | 6 | ... | | 6 | 10 | ... |
表 b 的結(jié)構(gòu)如下:
b --------------------- | id | type | ... | --------------------- | 1 | 99 | ... | | 2 | 0 | ... | | 3 | 99 | ... | | 4 | 1 | ... | | 5 | 3 | ... | | 6 | 99 | ... |
需要查詢出表 a 的兩種數(shù)據(jù):
- 使用 a 表的 outer_id 關(guān)聯(lián) b 表的 id,如果存在則 type 不能為 99,如果不存在則保留該數(shù)據(jù)。
- b 表存在且 type 等于 99。
解答:
查詢 1:
select a.* from a a left join b b on b.id = a.outer_id where b.id is null or (b.id is not null and b.type != 99)
查詢 2:
SELECT a.* FROM A a INNER JOIN B b ON b.id = a.outer_id AND b.type = 99
? 版權(quán)聲明
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載。
THE END