mariadb 如何显示join 2 mysql表?

7lrncoxx  于 2022-11-08  发布在  Mysql
关注(0)|答案(2)|浏览(129)

我在MySQL上有2个表:物理层和虚拟机。
下面是phy表:

下面是VM表:

我想得到一个像下面这样的结果:

我键入如下命令:

select ip, name, brand, vm.mem, vm.mem FROM phy JOIN vm ON phy.ip = vm.ip

但结果是这样的:

我必须键入什么命令才能得到我想要的结果?

pw9qyyiw

pw9qyyiw1#

SELECT *
FROM phy
JOIN vm USING (ip)

该查询假定ip在两个表中都被定义为主键/唯一键。
如果ip的数据只存在于其中一个表中,则查询将不会返回该数据。

SELECT *
FROM ( SELECT ip FROM phy
       UNION 
       SELECT ip FROM vm ) total
LEFT JOIN phy USING (ip)
LEFT JOIN vm USING (ip)

或者,如果仅在一个表中可选显示,则使用(例如,对于vm中的可选显示)

SELECT *
FROM phy
LEFT JOIN vm USING (ip)
oug3syen

oug3syen2#

SELECT phy.id, phy.name, phy.brand, vm.mem, vm.hdd
FROM phy
INNER JOIN vm ON phy.id=vm.id;

相关问题