【问题标题】:Get unjoined values in mysql在mysql中获取未连接的值
【发布时间】:2014-04-23 17:55:44
【问题描述】:

我在 Mysql 中有 2 个表

表 1 --

Id     Candidate_id     简历

25     100                   hjksdf.jpg

26      101                   hdd.docx

29      102                    hf.docx

30      103                   hsdfh.docx

表 2 --

resumes_sent_id     client_id     candidate_id       日期  

1                              43                100           2014-03-14 03

2                              43                101           2014-03-15 03

我需要加入这两个表,其中client_id 43 加入后我只需要“未加入”记录。如果我加入,我可以得到 candidate_id 哪些值具有唯一的 100,101。 但在我的输出中,我需要那些具有 102,103 的数据记录,这意味着除了加入的唯一值。

基于t2,其中client_id 为43,有两个值100 和101,但我想过滤不匹配的值,例如102。

【问题讨论】:

标签: mysql join


【解决方案1】:

试试这个

SELECT table1.*
FROM table1 LEFT JOIN table2 ON table2.candidate_id=table1.candidate_id
WHERE table2.candidate_id IS NULL and t2.client_id=43

【讨论】:

    【解决方案2】:

    如果你想要不匹配的记录,你必须使用Outer join

    select your column names from table1 t1 outer join table2 t2 on t1.candidate_id=t2.candidate_id 
    

    【讨论】:

      【解决方案3】:

      使用左连接并测试是否为空

      select * from table1 t1
      left join table2 t2 on t1.candidate_id=t2.candidate_id
      where t2.candidate_id is null
      

      left join 返回第一个表中的所有行,其中包含 t2 值的匹配项或空值(没有对应的 t2 行)。从该结果中,您想要所有不匹配的行,导致 t2.candidate_id 成为 null

      【讨论】:

        【解决方案4】:

        希望对您有所帮助....

        如果您在查询中使用不等号,那么您会得到 6 行的结果

        SELECT * FROM TABLE1 T1 INNER JOIN TABLE2 T2 ON T2.CLIENT_ID= 43 AND T1.CANDIDATE_ID T2.CANDIDATE_ID

        但它包括 2 行,由于加入而有 100,101 行

        ..如果您想手动从结果中删除 100,101 id,然后得到这个查询..

        SELECT * FROM T1 T1 INNER JOIN TABLE2 T2 ON T2.CLIENT_ID= 43 AND T1.CANDIDATE_ID T2.CANDIDATE_ID AND T1.candidate_id NOT IN(101,100)

        谢谢

        【讨论】:

          【解决方案5】:

          使用以下代码:

          SELECT * FROM `Table 1` t1 
              LEFT JOIN `Table 2` t2 
              ON t1.candidate_id=t2.candidate_id 
              WHERE t2.candidate_id IS NULL
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-12-02
            • 1970-01-01
            • 2022-12-17
            • 2019-03-11
            相关资源
            最近更新 更多