mysql SELECT来自两个带有两个语句的表

时间:2016-04-15 19:31:18

标签: mysql

我在mysql中有两个表:

tbl_productstbl_users = userID, userEmail, userPassword

tbl_products = creatorID, serialNumber, artNumber, regDate

tbl_users

我需要选择两行:一行来自tbl_products,另一行来自SELECT * FROM tbl_users, tbl_products WHERE userid = 8 AND serialnumber = 23432535 ,其中序列号= ???和userID = ???。

当我使用

SELECT * 
FROM   tbl_users, 
       tbl_products 
WHERE  ( userid = 8 
         AND serialnumber = 23432535 ) 
        OR userid = 8 

我得到0结果(因为serialNumber中的数字是假的)。

但是当我使用

SELECT * 
FROM tbl_users 
WHERE userID=8 
UNION 
SELECT creatorID,serialNumber,artNumber 
FROM tbl_products 
WHERE serialNumber=23432535

结果我得到了不止一行。我不知道为什么,因为serialNumber是假的,只有一个用户有id = 8。

有人可以解释为什么我在结果集中有多行?感谢

@edit

UNION

shoulda-matchers解决了我的问题。感谢

2 个答案:

答案 0 :(得分:1)

多数民众赞成因为你缺少表格之间关系的条款,我想你的例子就是

and creatorID = userID

答案 1 :(得分:1)

true