首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
拉勾
V2EX  ›  问与答

一个 SQL 查询的问题

  •  
  •   Laynooor · 69 天前 · 942 次点击
    这是一个创建于 69 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在有两张表,2018_word_freqt5000.

    两张表有些单词是共有的,我想列出 2018_word_freq 特有的单词。(比如两张表都有 the 这个单词,那么最后查询结果中不会出现这个词)

    2018.png

    5000.png

    这是我在 Google Bigquery 上执行的查询语句,但是返回的结果并没有排除重复的项目。

    result.png

    感觉是自己 SQL 没写对,但是网上查了半天,语句改了又改结果还是不正确……

    第 1 条附言  ·  69 天前

    t5000 前面有空格……去掉之后再查询结果就正常了

    Snipaste_2019-01-12_10-41-05.png

    11 回复  |  直到 2019-01-12 12:22:00 +08:00
        1
    MOONYANYI   69 天前   ♥ 1
    用 inner 查出两张表相同的,再 not in
        2
    yasumoto   69 天前   ♥ 1
    select wf.* from 2018_word_freq wf where wf.word not in (SELECT word from t5000 where _______word in (wf.word));

    select wf.* from 2018_word_freq wf where wf.word not in (SELECT word from 2018_word_freq twf , t5000 t where twf.word = t._______word );

    跟楼上的思路一样 不知道是否有更有效的查询方法
        3
    lsongiu   69 天前   ♥ 1
    我咋感觉 lz 本身的 sql 也能查出来才对呢。难道有空格?
        4
    thinkif   69 天前   ♥ 1
    是我眼花了么?仅从截图里看,2 个表中的词没有看到重复的
        5
    Laynooor   69 天前
    @thinkif 第一个表 2000 个单词。第二个表 5000 个单词,然后截图里显示的没有按词频排序,所以没看到重复的
        6
    thinkif   69 天前
    @Laynooor #5
    not in
        7
    MOONYANYI   69 天前
    还可以用左外连接,再判断右表字段为 null 的
        8
    oaix   69 天前   ♥ 1
    select a.* from 2018_word_freq a left join t5000 b on a.word = b.______word where b.______word is null

    如果你的数据库支持 left anti join 可以使用 select a.* from 2018_word_freq a left anti join t5000 b on a.word = b.______word
        9
    thinkif   69 天前   ♥ 1
    @Laynooor #5
    一不留神发布去了
    正常来说,not in / not exists / left join + is not null 这几种写法都可以的
    然后如 @lsongiu #3 所说,如果词中有空格干扰也可能出问题,试试 trim 掉空格或换行符之类的试试
        10
    Laynooor   69 天前
    @lsongiu 确实是空格的问题,第二个表前面有空格,去掉后就正常了。
        11
    qinrui   69 天前 via iPhone
    select word from a left outer join b on a.word=b.word where b.word is null
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1670 人在线   最高记录 4385   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 16ms · UTC 16:38 · PVG 00:38 · LAX 09:38 · JFK 12:38
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1