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

标签 php mysql

我有 2 个表。我想打印出 table1 中的所有访问列表,以及 table2 中的接口(interface)。但是一些访问列表没有与访问列表关联的接口(interface)(但我仍然想打印这些访问列表)。我该怎么做呢? (我就是得不到想要的结果result._.)

表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,通常缩写为 JOIN

关于php - MySQL查询从多个表中选择,显示全部来自table1 +来自table2的一些数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30171291/

相关文章:

mysql - 在 MySQL 中获取 GROUP 的 MAX 行

mysql - SQL 删除重复项 - 保留已删除的 ID

php - 如何在 Zend Framework 中启用我的模块?

php - SEO:使用选项卡式导航时有趣的重复内容

php - 用 PHP 读取二进制文件

php - 如何从数据库中的多个时间条目中添加总时间?

sql - Wordpress SQL 命令将作者 John Doe 的所有帖子设置为草稿

PHP 将推文插入 mysql

php - html 表单到 sql 数据库与 php

php - MySQL 获取相关用户