如何使用外連接在 MySQL 中查詢關(guān)聯(lián)表并顯示所有記錄?

如何使用外連接在 MySQL 中查詢關(guān)聯(lián)表并顯示所有記錄?

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)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊14 分享
站長(zhǎng)的頭像-小浪學(xué)習(xí)網(wǎng)月度會(huì)員