如何在MySQL上只获取两个表的公共行?

如何在MySQL上只获取两个表的公共行?,mysql,sql,join,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中具有共同点的行。我尝试了内部联接,但它返回表A中的所有行,其中来自表A的id_用户等于表B中的id_用户。如有: Table User

可能很简单,但假设我有:

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中具有共同点的行。我尝试了
内部联接
,但它返回表A中的所有行,其中来自表A的id_用户等于表B中的id_用户。如有:

Table User (id_user, name) 
Table A (id_a, name, type, #id_user)
表用户:

id_user name 1 Hey
希望我已经说清楚了,非常感谢。

这是您的目标:“显示a和B中共享同一用户id的所有行”


这就是您要追求的:“显示A和B中共享同一id_用户的所有行”


不,你还没说清楚。首先,表A和表B甚至没有相同的结构,所以它们怎么可能有一个共同的行呢?对不起-我不清楚…你想显示哪些字段…如果我读对了,你可能只想在条件下将你关心的所有列添加到连接中。如果您有样本数据和所需的结果,涵盖了您想要测试的所有案例,这将有所帮助。既然你是新来的,在这里查一查问好问题的技巧。我也不明白。如果您不是指
id\u用户
匹配,那么“公共行”是什么意思?不,您没有说清楚。首先,表A和表B甚至没有相同的结构,所以它们怎么可能有一个共同的行呢?对不起-我不清楚…你想显示哪些字段…如果我读对了,你可能只想在条件下将你关心的所有列添加到连接中。如果您有样本数据和所需的结果,涵盖了您想要测试的所有案例,这将有所帮助。既然你是新来的,在这里查一查问好问题的技巧。我也不明白。如果您不是指
id\u用户
匹配,那么“公共行”是什么意思? id_b id_user id_user2 id_a id_Something 1 1 Doesn't matter 1 Doesn't matter id_a name type id_user id_b id_user2 1 a car 1 1
SELECT     * 
FROM       B 
INNER JOIN A ON A.id_user = 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