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

时间:2012-12-28 03:03:30

标签: mysql subquery inner-join

我有以下查询:

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),那么我希望数据显示为:

詹姆斯琳达

詹姆斯鲍勃

James Suzanna

詹姆斯桑迪

詹姆斯汤姆

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

2 个答案:

答案 0 :(得分:2)

我认为在这种情况下你需要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

答案 1 :(得分:0)

您可以使用左连接

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