我在mysql数据库2个表时:帐户和用户2选择1查询结果在4个结果预计2个结果
我要选择两个表ACCOUNTID和用户名和得到的结果,像这样:
accountid || userid
7 22
29 44
我不明白为什么它给ŝ我4个结果像这样:
我在mysql数据库2个表时:帐户和用户2选择1查询结果在4个结果预计2个结果
我要选择两个表ACCOUNTID和用户名和得到的结果,像这样:
accountid || userid
7 22
29 44
我不明白为什么它给ŝ我4个结果像这样:
根据你的截图你有username
链接,这是非常差的db设计。
所以你应该改变你的模式,并使用user.id
链接你的表格。
但到目前为止,您的查询是:
SELECT accounts.accountid, users.userid
FROM accounts
LEFT JOIN users
ON accounts.username=users.username
这个语法做我需要的,我已经考虑到你提到的FK。谢谢 –
我们不知道到底是我们的表结构,但你definitly失踪接通部分的加入
SELECT accounts.accountid,users.userid FROM账户 INNER JOIN用户ON users.userid = accounts.userid
或任何你想比较
我相信你缺少的 'ON'语法的一部分,这给一试:
SELECT accounts.accountid, users.userid
FROM accounts
INNER JOIN users
ON accounts.userid=users.userid;
请确保您有“用户ID”你的“账户”表这个工作,这告诉查询加入了“用户ID”两表中,并应防止任何重复的行。
我希望这有助于!
我不知道为什么你没有得到答案,但你应该知道你在这两个表中有共同的用户名的一点,所以如果你用这两个表的用户名的帮助将表加入表中,
select accountid,userid from Accounts inner join Users where Accounts.username=Users.username;
好了,我们不知道相同的名称。如果没有ON条件,table1中的每一行都与table2中的每一行连接。 – Seb
你是对的!我混合了“自然”加入..我要删除它以避免其他人的错误 – Delphine
提供您的数据库模式,并说明为什么'accountid = 7'链接到'userid = 22'但不是44? – Alex