我有一张这样的 table
用户|项目ID
还有另一个像这样的表:
项目ID |项目特征1 | itemTrait2 等...
我正在尝试链接一个查询中的表,这应该很简单。我像这样进行查询:
SELECT * FROM Table1, Table2 WHERE Table1.userID = 1 AND Table1.itemID = Table2.itemID;
问题是我收到了 456 个返回结果,但如果我只是运行:
SELECT * FROM Table1 WHERE userID = 1;
我得到 434 个结果。这两个语句应该得到相同数量的返回结果吗?
我想象这个调用的工作原理是,对于表 1 中用户 1 的每个条目,它都会将其连接到表 2 中的项目数据?我想我在这里遗漏了一些东西。
最佳答案
基于 itemID 组合两个表的查询
select * from table1 t1
left join table t2 on t1.itemID = t2.itemID
where t1.itemID = 1;
如果您获取的记录多于table1 的记录,那么您的第二个表table2 必须有多个itemID 记录。例如
表1
user | itemId
---------------
1 | 1
表2
itemId | itemTrait1 | itemTrait2
----------------------------------------
1 | A | B
1 | C | D
现在,当您在此处应用联接时,它将把 itemID 1 与第二个表的两个项目联接起来。
关于mySQL 结合两个表我得到更多结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32385495/