首页 新闻 会员 周边

sql查询a表中数据是否在B表存在

0
[已解决问题] 解决于 2017-12-18 14:48
SELECT
    o. ID AS ID,
    (
        CASE
        WHEN q.uniscid = o.uniscid THEN
            q.uniscid
        ELSE
            NULL
        END
    ) AS uniscid,
    (
        CASE
        WHEN q.regno = o.regno THEN
            q.regno
        ELSE
            NULL
        END
    ) AS regno,
    (
        CASE
        WHEN q.entname = o.entname THEN
            q.entname
        ELSE
            NULL
        END
    ) AS entname
FROM
    data_syfr_tem o
LEFT JOIN data_qyfr q ON (
    o.entname = q.entname
    OR o.uniscid = q.uniscid
    OR o.regno = q.regno
)
WHERE
    o.batchno = '20171213-2'
AND STATE = '1';

 

我想把下面的两个id合并了  变成   6077 1211 null  测试单位名称,有大哥能教教吗。。。

DISTINCT on (o.id)我加了这个的话,数据就变成前两行的数据了,并合并成我想要的这个样子

如梦一场的主页 如梦一场 | 菜鸟二级 | 园豆:234
提问于:2017-12-13 18:04
< >
分享
最佳答案
0
SELECT
    o. ID AS ID,
    (
        SELECT uniscid FROM data_qyfr
        WHERE uniscid = o.uniscid
    ) AS uniscid,
    (
        SELECT regno FROM data_qyfr
        WHERE o.regno = q.regno
    ) AS regno,
    (
       SELECT entname  FROM data_qyfr 
       WHERE  o.entname=entname
    ) AS entname
FROM
    data_syfr_tem o
WHERE
    o.batchno = '20171213-2'
AND STATE = '1';
奖励园豆:5
、熙和 | 小虾三级 |园豆:1508 | 2017-12-14 17:40

 你没发表结构 , 不清楚你这个到底什么样的结构, 死马当活马医吧............

、熙和 | 园豆:1508 (小虾三级) | 2017-12-14 17:44

谢答,这个问题其实是我想的麻烦了,其实我可以直接拿A表的参数直接在B表查。。

select * from b  where b.name='a表相关字段' 还是谢谢老哥的回答了

如梦一场 | 园豆:234 (菜鸟二级) | 2017-12-18 14:48
其他回答(2)
0

可以使用左连接查询:select * from a left join b on a.id=b.id where 1,大概是这样,剩下的条件看你需要

我只是慕名而来 | 园豆:303 (菜鸟二级) | 2017-12-13 21:23

谢答,这个问题其实是我想的麻烦了,其实我可以直接拿A表的参数直接在B表查。。

select * from b  where b.name='a表相关字段' 还是谢谢老哥的回答了

支持(0) 反对(0) 如梦一场 | 园豆:234 (菜鸟二级) | 2017-12-18 14:48
0

你直接发你的表结构,和你想要达成的结果吧。

87Super | 园豆:107 (初学一级) | 2017-12-14 09:36

谢答,这个问题其实是我想的麻烦了,其实我可以直接拿A表的参数直接在B表查。。

select * from b  where b.name='a表相关字段' 还是谢谢老哥的回答了

支持(0) 反对(0) 如梦一场 | 园豆:234 (菜鸟二级) | 2017-12-18 14:48
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册