如何在MySQL上只获得2个表的常见行?

时间:2016-12-16 21:18:39

标签: mysql sql join

可能是简单的事情,但是,假设我有这些:

Table User (id_user, name) 
Table A (id_a, name, type, #id_user)

然后我有另一个只有自己的id和其他外键

Table B (id_b, #id_user1, #id_user2, #id_a, #id_Something)

所以,我需要一个只返回表A和表B的行的查询,它们具有共同点。我已经尝试了INNER JOIN但它返回表A中的所有行,其中id_user等于表B中的id_user。就像,如果我有这些:

表用户:

id_user   name
1         Hey

表A:

id_a   name   type   id_user
1      a      car    1
2      b      cat    1

表B:

id_b   id_user   id_user2         id_a   id_Something
1      1         Doesn't matter   1      Doesn't matter

我只需要返回表A和表B之间的公共行(这将是:

id_a   name   type   id_user   id_b   id_user2
1      a      car    1         1

我已经尝试了INNER JOIN,但是当来自B的id_user来自A = id_user时,它会返回给我。我使用了这种语法:

SELECT     * 
FROM       B 
INNER JOIN A ON A.id_user = B.id_user;

希望我已经说清楚了,非常感谢你。

1 个答案:

答案 0 :(得分:0)

您正在追求的是:"向我显示A和B中共享相同id_user"

的所有行
SELECT User.id_user, User.name, a.id_a, b.id_b
FROM User
INNER JOIN A ON a.id_user = User.id_user
INNER JOIN B on b.id_user = User.id_user