2预期2个结果时,1个查询中的SELECT会产生4个结果

时间:2016-11-21 16:07:35

标签: mysql

我在mysql数据库中有2个表:帐户和用户

帐户如下所示:enter image description here

用户看起来像这样:enter image description here

我想从两个表中选择accountid和userid并得到如下结果:

accountid || userid
7            22
29           44     

我不明白为什么它给我4个结果如此:

enter image description here

4 个答案:

答案 0 :(得分:1)

根据您的屏幕截图,您有username链接的表格,这是非常糟糕的数据库设计。

因此,您一定要更改架构并使用user.id链接表格。

但到目前为止您的查询是:

SELECT accounts.accountid, users.userid
FROM accounts
LEFT JOIN users
ON accounts.username=users.username

答案 1 :(得分:0)

我们并不确切知道我们的表格结构,但你肯定错过了连接上的ON部分

SELECT accounts.accountid,users.userid   来自帐户   INNER JOIN用户ON users.userid = accounts.userid

或者您想要比较的任何内容

答案 2 :(得分:0)

我相信你错过了' ON'语法的一部分,试一试:

SELECT accounts.accountid, users.userid
FROM accounts
INNER JOIN users
ON accounts.userid=users.userid;

确保您拥有' userid'在您的帐户中#39;这个表工作,这告诉查询加入' userid'在两个表中都应该防止任何重复的行。

我希望这有帮助!

答案 3 :(得分:0)

我不知道为什么你没有得到答案,但是你应该知道你在两个表中都有用户名的一点,所以如果你在表的两个用户名的帮助下加入表,你就会得到像< / p>

select accountid,userid from Accounts inner join Users where Accounts.username=Users.username;