mysql 關聯(lián)表查詢——查詢兩種關聯(lián)數(shù)據(jù)
給定兩個表 a 和 b,a 表包含 outer_id 列,而 b 表包含 type 列。目標是查詢 a 表中的兩類數(shù)據(jù):
- 在 a 表中不存在于 b 表的 outer_id,或者存在于 b 表但 type 不等于 99。
- 存在于 b 表且 type 等于 99 的 a 表數(shù)據(jù)。
第一類數(shù)據(jù)
要查詢第一類數(shù)據(jù),可以使用如下語句:
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)
此語句使用左連接,它會將 a 表中的所有行都返回,即使在 b 表中沒有匹配的記錄。where 子句用于過濾掉不存在于 b 表中或 type 不等于 99 的行。
第二類數(shù)據(jù)
要查詢第二類數(shù)據(jù),可以使用如下語句:
SELECT a.* FROM A a INNER JOIN B b ON b.id = a.outer_id AND b.type = 99
此語句使用內(nèi)連接,它只會返回 a 表中存在于 b 表中且 type 等于 99 的行。where 子句用于指定這些條件。
? 版權聲明
文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載。
THE END