我有一张像这样的表
用户| 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中的项目数据?我想我在这里错过了一些东西。
答案 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加入第二个表的两个项目。