我有一张这样的桌子

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/

10-12 00:05
查看更多