mysql 查詢關(guān)聯(lián)表時(shí)顯示所有記錄
在涉及多個(gè)表的查詢中,如果某個(gè)表中有值為 0 的字段,可能會(huì)導(dǎo)致查詢不到與其關(guān)聯(lián)的所有記錄。為了解決這個(gè)問(wèn)題,可以在查詢中使用外連接(left join)。
以下查詢示范了如何查詢關(guān)聯(lián)表并顯示所有記錄,即使其中某個(gè)表中包含 0 的值:
SELECT d.id, a.name AS a_name, b.name AS b_name, c.name AS c_name FROM D AS d LEFT JOIN A AS a ON a.id=d.a_id LEFT JOIN B AS b ON b.id=d.b_id LEFT JOIN C AS c ON c.id=d.c_id;
在這個(gè)查詢中:
- left join 指定了當(dāng) a、b 或 c 表中沒(méi)有匹配記錄時(shí),將返回 NULL 而不是忽略該行。
- a_name、b_name 和 c_name 是重命名的列名,表示 a、b 和 c 表中的 name 列。
這樣,即使 d 表中某個(gè)記錄的 a_id、b_id 或 c_id 為 0,此查詢?nèi)詴?huì)返回所有記錄,并將未關(guān)聯(lián)的 name 列顯示為 null。
? 版權(quán)聲明
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載。
THE END