MySQL查询从多个表中选择,显示来自table1 + table2中的一些数据

时间:2015-05-11 15:08:44

标签: php mysql

我有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

1 个答案:

答案 0 :(得分:0)

SELECT *
FROM table1 t1
LEFT JOIN table2 t2
    ON t1.access_list = t2.access_list

当您需要来自一个表的所有数据,并且只需要与另一个表匹配的数据时,通常需要OUTER JOINLEFT JOIN实际上是LEFT OUTER JOIN的缩写,并指定哪个表(JOIN语句左侧的表)将返回所有数据。您始终可以使用RIGHT JOIN并以相反的方式命名表(即table1 LEFT JOIN table2等同于table2 RIGHT JOIN table1),但LEFT JOIN语法更为常见。

仅返回两个表中匹配数据的联接称为INNER JOIN,通常缩写为JOIN