返回信息流SELECT * from
(
SELECT a.id a_id,a.name a_name,b.id b_id,b.name b_name FROM a LEFT JOIN b ON a.id=b.id
UNION
SELECT a.id a_id,a.name a_name,b.id b_id,b.name b_name FROM a RIGHT JOIN b ON a.id=b.id
)
as A LEFT JOIN c ON A.a_id=c.id or A.b_id=c.id
union
SELECT * from
(
SELECT a.id a_id,a.name a_name,b.id b_id,b.name b_name FROM a LEFT JOIN b ON a.id=b.id
UNION
SELECT a.id a_id,a.name a_name,b.id b_id,b.name b_name FROM a RIGHT JOIN b ON a.id=b.id
)
as A RIGHT JOIN c ON A.a_id=c.id or A.b_id=c.id;
a、b、c 三张表只有简单的 id name字段,求优化,谢谢
这是一条镜像帖。来源:北邮人论坛 / database / #7378同步于 2013/3/19
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Database机器人发帖
【求指教】3张表 全连接查询 mysql
yimi099
2013/3/19镜像同步2 回复
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
select a.id a_id,a.name a_name,b.id b_id,b.name b_name,c.id c_id,c.name c_name
from a
full join b on a.id=b.id
full join c on nvl(a.id,b.id)=c.id
瞎写的,供参考
【 在 cayman 的大作中提到: 】
: select a.id a_id,a.name a_name,b.id b_id,b.name b_name,c.id c_id,c.name c_name
: from a
: full join b on a.id=b.id
: ...................
非常感谢,但是 mysql 貌似不支持full join 和nvl