我有一个用户表和一个销售表。 sales表有一个user_id列,我想加入user表的id列。我的预期结果是获取sales表中的所有行,其user_id与user表中的id列匹配,因此我可以显示登录用户的信息。
我的疑问是:
SELECT * FROM user u JOIN sales s ON ( u.id = s.user_id )
虽然我只是得到了表格的每一行,但会发生什么。
感谢任何帮助。感谢。
答案 0 :(得分:1)
你必须添加WHERE
子句来过滤掉当前用户的行,比如
SELECT * FROM user u JOIN sales s ON ( u.id = s.user_id )
WHERE u.User = 'someone'
答案 1 :(得分:0)
在当前的SQL中,您正在加入表,但您的用例更像是左外连接。 使用此查询
SELECT column_name(s)
FROM sales s
LEFT JOIN user u
ON u.user_id=s.user_id
答案 2 :(得分:0)
您正在尝试的查询是制作结果的笛卡尔积。所以它显示了表中的所有行。
您应该根据需要尝试Inner Join
,Left Outer Join
或Right Outer Join
。