首页 文章

MySQL子查询返回多个行和内连接

提问于
浏览
1

我有以下查询:

select user_name as rt, 
      (select source_user_name from tweets t where t.rt_user_name = u.user_name)
from topUserData u

现在MySQL给我一个错误,说子查询返回多行 . 但是,我想要的是这种一对多的关系 . 例如,如果user_name是james并返回子查询(Linda,Bob,Suzanna,Sandy,Tom),那么我希望数据显示为:

詹姆斯琳达

詹姆斯鲍勃

詹姆斯苏珊娜

詹姆斯桑迪

詹姆斯汤姆

如何从我拥有的功能中获得此功能?我也看到这类似于内连接,但我想要一个子查询的答案 . 所有帮助表示赞赏 .

2 回答

  • 0

    我想你在这种情况下需要 INNER JOIN

    SELECT  a.user_name as RT,
            b.source_user_name
    FROM    topUserData a
            INNER JOIN tweets b
                ON a.user_name = b.rt_user_name
    

    或者(因为你内部没有任何特殊的动作,所以不需要子查询)

    select user_name as rt, source_user_name 
    from topUserData u
         INNER JOIN
         (
             select DISTINCT source_user_name 
             from tweets t 
         ) ON t.rt_user_name = u.user_name
    
  • 2

    您可以使用左连接

    select user_name , source_username from topUserData u left join tweets t on t.rt_user_name = u.user_name
    

相关问题