一个表中两列的mysql连接

一个表中两列的mysql连接,mysql,sql,select,join,Mysql,Sql,Select,Join,您好,我有一个表tbl\u relations,看起来像 ----------------------------------- | id | source_id | target_id | ----------------------------------- | 2 | 2 | 4 | ----------------------------------- | 3 | 5 | 7 |

您好,我有一个表
tbl\u relations
,看起来像

 -----------------------------------
 | id  |  source_id  |  target_id  |
 -----------------------------------
 | 2   |   2         |   4         |
 -----------------------------------
 | 3   |   5         |   7         | 
 -----------------------------------
 | 4   |   7         |   4         |
 -----------------------------------  
------------------------------
| id   |  language  |  value  |
------------------------------
| 1    |  1         |   abc   |
------------------------------
| 1    |  2         |   abc   |
------------------------------
| 2    |  1         |   abc   |
-------------------------------
| 2    |  2         |   abc   |
-------------------------------
| 5    |  1         |   abc   |
-------------------------------
| 5    |  2         |   abc   |
-------------------------------
| 7    |  1         |   abc   |
-------------------------------
| 7    |  1         |   abc   |
-------------------------------
和其他表
tbl_looksup
,如下所示

 -----------------------------------
 | id  |  source_id  |  target_id  |
 -----------------------------------
 | 2   |   2         |   4         |
 -----------------------------------
 | 3   |   5         |   7         | 
 -----------------------------------
 | 4   |   7         |   4         |
 -----------------------------------  
------------------------------
| id   |  language  |  value  |
------------------------------
| 1    |  1         |   abc   |
------------------------------
| 1    |  2         |   abc   |
------------------------------
| 2    |  1         |   abc   |
-------------------------------
| 2    |  2         |   abc   |
-------------------------------
| 5    |  1         |   abc   |
-------------------------------
| 5    |  2         |   abc   |
-------------------------------
| 7    |  1         |   abc   |
-------------------------------
| 7    |  1         |   abc   |
-------------------------------
tbl\u关系
映射到
tbl\u looksup
的方式是
tbl\u关系。源代码id
tbl\u关系。目标代码id
是tbl\u looksup的
id

我的问题 我需要找出
tbl\u relations
中那些
source\u id
target\u id
tbl\u looksup
中不存在的记录。这意味着
tbl\u looksup
中不存在
id
。更详细地说,tbl_关系的第一条记录具有
target_id=4
,这在
tbl_looksup
中不存在。这是错误的记录。我需要找出这些记录

我到目前为止所做的事情

 SELECT 
  tbl_relations.source_id,
  tbl_relations.target_id,
  tbl_relations.id,
  tbl_looksup.`id` AS tblid 
FROM
  tbl_relations
  LEFT JOIN tbl_looksup 
   ON tbl_relations.`source_id` != tbl_looksup.`id` 
   OR tbl_relations.`target_id` != tbl_looksup.`id` 
GROUP BY tbl_relations.id

为了得到您想要的结果,您需要加入
tbl_looksup
两次,因为有两列依赖于该表

SELECT  DISTINCT a.*
FROM    tbl_relations a
        LEFT JOIN tbl_looksup  b
            ON a.source_id  = b.id
        LEFT JOIN tbl_looksup  c
            ON a.target_id = c.id
WHERE   b.id IS NULL OR 
        c.id IS NULL
要进一步了解加入的更多信息,请访问以下链接:

输出

╔════╦═══════════╦═══════════╗
║ ID ║ SOURCE_ID ║ TARGET_ID ║
╠════╬═══════════╬═══════════╣
║  2 ║         2 ║         4 ║
║  4 ║         7 ║         4 ║
╚════╩═══════════╩═══════════╝
尝试添加以下内容:

其中tbl_关系。
target_id
为空


+1从你的速度来看,在回答任何问题的前五分钟内,你都应该被禁止D@hims056不<代码>O_O
请不要
:D
hehe@JW. 这是杰出的。谢谢你,伙计