gpt4 book ai didi

mysql - 我如何将 3 个表与 MySQL 连接在一起...并省略第二个 "Middle"表中的列

转载 作者:搜寻专家 更新时间:2023-10-30 22:11:23 25 4
gpt4 key购买 nike

我有 3 个表:Users,包含相关的用户数据

ComputerUsers,它将 Users 与来自第四个(对于我的目的无关)表 Computers 中的信息联系在一起。

最后是软件,其中包含各种计算机上存在的软件列表。

将用户与软件联系在一起的唯一方法是

Users.User_ID <-> ComputerUsers.User_ID/ComputerUsers.Computer_ID<->Software.Computer_ID

我知道我可以用

SELECT * FROM Users INNER JOIN ComputerUsers ON Users.User_ID = ComputerUsers.User_ID INNER JOIN Software ON ComputerUsers.Computer_ID = Software.Computer_ID

将用户与他们所有的软件联系在一起,特别是如果我像这样过滤它的话

Where Users.User_ID = 'Some_Value'

我的提示是,当我运行此 SQL 时,我得到的结果集包含:Users 表中的所有列、Computer_Users 表中的两列以及 software 表中的所有列。

我确信有更好的方法可以做到这一点,但我是 MySQL、SQL 和一般数据库方面的新手。

我将如何在省略 Computer_Users 表中的列的同时完成将 Users 表与 Software 表连接在一起?

最佳答案

您可以执行此操作以仅从两个表中获取列:

SELECT u.*, s.*
FROM Users u INNER JOIN
ComputerUsers cu
ON u.User_ID = cu.User_ID INNER JOIN
Software s
ON cu.Computer_ID = s.Computer_ID;

更聪明的方法是使用 using 子句:

SELECT *
FROM Users u INNER JOIN
ComputerUsers cu
USING (User_ID) INNER JOIN
Software s
USING (Computer_ID);

当您使用 USING 时,用于 join 条件的列不会重复。

关于mysql - 我如何将 3 个表与 MySQL 连接在一起...并省略第二个 "Middle"表中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27556496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com