【发布时间】:2014-12-18 22:03:33
【问题描述】:
我有 3 张桌子: 用户,包含相关的用户数据
ComputerUsers,它将用户与来自第四个表(在此无关的)计算机表中的信息联系在一起。
最后是软件,它包含各种计算机上存在的软件列表。
将用户与软件联系在一起的唯一方法是
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 表中的所有列以及软件表中的所有列。
我确信有更好的方法可以做到这一点,但我是 MySQL、SQL 和一般数据库方面的新手。
如何在省略 Computer_Users 表中的列的同时完成将用户表与软件表连接在一起?
【问题讨论】:
-
在
select语句中明确列出列。那就是你想要的。另外,这是个好主意。 -
速度快得吓人...另外,如果您想将其放入答案表格中,我会标记它。
-
我们的目标是取悦 :P(而 Gordon 正力争在今年获得的积分中排名第一)