mySQL结合两个表我得到更多的结果

时间:2015-09-03 21:11:47

标签: mysql

我有一张像这样的表

用户| 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中的项目数据?我想我在这里错过了一些东西。

1 个答案:

答案 0 :(得分:0)

查询以组合基于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加入第二个表的两个项目。