[英]MySQL query select from multiple tables, display all from table1 + some data from table2
我有2張桌子。 我想打印出table1的所有訪問列表 ,以及table2的接口 。 但是某些訪問列表沒有與訪問列表關聯的接口(但是我仍然要打印這些訪問列表)。 我該怎么做呢? (我只是無法獲得所需的結果。
表格1
| id | access-list | ...
+----+--------------+
| 0 | list_1 | ...
| 1 | list_2 | ...
| 2 | list_3 | ...
| 3 | list_4 | ...
表2
| id | access-list | interface |
+----+--------------+-----------+
| 0 | list_1 | iface0 |
| 1 | list_4 | iface1 |
預期結果:
0 list_1 iface0 bla bla bla
1 list_2 bla bla bla
2 list_3 bla bla bla
3 list_4 iface1 bla bla bla
SELECT *
FROM table1 t1
LEFT JOIN table2 t2
ON t1.access_list = t2.access_list
當您需要一個表中的所有數據,而僅需要另一個表中的數據時,通常需要使用OUTER JOIN
。 LEFT JOIN
實際上是LEFT OUTER JOIN
縮寫,它指定哪個表( JOIN
語句左側的表)將返回所有數據。 您始終可以使用RIGHT JOIN
並以另一種方式命名表(即table1 LEFT JOIN table2
等效於table2 RIGHT JOIN table1
),但是LEFT JOIN
語法更為常見。
僅從兩個表中返回匹配數據的INNER JOIN
稱為INNER JOIN
,通常縮寫為JOIN
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.