我有一张这样的桌子
user | itemID
还有另一个像这样的表:
itemID | itemTrait1 | 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 - MySQL结合两个表我得到更多的结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32385495/