mysql - 2 个查询结果集怎么合并?
怪我咯
怪我咯 2017-04-17 11:40:41
[MySQL讨论组]

表结构
a:

aid

b:

aid name

x:

xid

y:

xid aid value

SELECT a.aid,b.name FROM a join b on a.aid = b.aid

aid name
1 aaaa

SELECT x.aid,y.value FROM x join y on x.xid = y.xid

aid value
1 bbb

想得到结果,因为上面2个结果都有aid。

aid name value
1 aaa bbb
怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(2)
巴扎黑

把你的两条sql: SELECT a.aid,b.name FROM a join b on a.aid = b.aidSELECT x.aid,y.value FROM x join y on x.xid = y.xid 继续作为子语句,连接起来。如果是等值连接只需要取其中一个的aid值就行了。 full join 可以用case语句进行选择

等值连接示例:

select tmpa.aid, tmpa.name, tmpb.value from 
   (SELECT a.aid,b.name FROM a join b on a.aid = b.aid ) tmpa 
    inner join (SELECT x.aid,y.value FROM x join y on x.xid = y.xid) tmpb
    on tmpa.aid=tmpb.aid
阿神

看到表结构的时候,直接就可以:
SELECT b.aid, b.name, y.value FROM b INNER JOIN y ON b.aid = y.aid;

然后如果题主确实是要连接a表和x表的话,跟前面的回答是正确的,不过sql有一两个小地方没写对:
SELECT tmpa.aid, tmpa.name, tmpb.value FROM
(SELECT a.aid,b.name FROM a JOIN b ON a.aid = b.aid) tmpa
INNER JOIN
(SELECT x.xid,y.aid,y.value FROM x JOIN y ON x.xid = y.xid) tmpb
ON tmpa.aid=tmpb.aid;

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号