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

詹姆斯琳达

詹姆斯鲍勃

詹姆斯·苏珊娜

詹姆斯桑迪

詹姆斯汤姆

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

4

2 回答 2

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
于 2012-12-28T03:06:21.443 回答
0

您可以使用左连接

select user_name , source_username from topUserData u left join tweets t on t.rt_user_name = u.user_name
于 2012-12-28T03:07:35.563 回答