mysql - 2 个查询结果集怎么合并?
怪我咯
怪我咯 2017-04-17 11:40:41
0
3
317

表结构
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
怪我咯
怪我咯

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

全部回覆 (3)
巴扎黑

把你的两条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 JOINyON 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 FROMxJOINyON x.xid = y.xid) tmpb
    ON tmpa.aid=tmpb.aid;

      Ty80

      如果你是想在查询时“合并”可以用关联(JOIN),如果你是指已经取得了数据集想用程序实现关联,如果是 Python 推荐用 Pandas,Java 可参考我的 https://github.com/ihongs/HongsCORE/blob/develop/src/java/app/hongs/db/FetchMore.java 中的部分代码(join),或者搜索其他实现。程序关联方法之一介绍:查询第一张表的数据,提取外键和行号(或行对象)组成映射,用外键为条件去查关联表,遍历结果或映射,追加到前面的数据中;依次关联其他表的结果。

        最新下載
        更多>
        網站特效
        網站源碼
        網站素材
        前端模板
        關於我們 免責聲明 Sitemap
        PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!