mysql - 如何从具有自连接的子查询中获取数据?
问题描述
我的桌子:
friends(uid_1 int, uid_2 int)
这是我的查询:
SELECT a.uid_1
, a.uid_2 as a2
, b.uid_1 as b1
, b.uid_2
from friend a
join friend b
on a.uid_1 = b.uid_2;
我想从查询中获取 a2 和 b1 用于其他目的
所以现在这个查询:
Select a2,b1
from (SELECT a.uid_1,a.uid_2 as a2,b.uid_1 as b1,b.uid_2
from friend a join
friend b
on a.uid_1=b.uid_2
)
不起作用。如何从一系列显示的数据中获取某些数据?
解决方案
第 1 号,您只是缺少子查询的别名,如下所示 -
Select a2,b1
from (
SELECT a.uid_1,a.uid_2 as a2,b.uid_1 as b1,b.uid_2
from friend a join
friend b
on a.uid_1=b.uid_2
) A -- added A as a Alias
但是第 2 点,不确定你想用 JOIN 做什么,因为你的查询与实现的 JOIN 条件完全等同于下面的查询-
SELECT *
FROM friend
WHERE uid_1 = uid_2