你好,我有一张桌子tbl_relations,看起来像
-----------------------------------
| id | source_id | target_id |
-----------------------------------
| 2 | 2 | 4 |
-----------------------------------
| 3 | 5 | 7 |
-----------------------------------
| 4 | 7 | 4 |
-----------------------------------
tbl_looksup和其他看起来像的桌子
------------------------------
| 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_relationstbl_looksup以这样的方式映射到tbl_relations.source_id并且tbl_relations.target_id是id of tbl_looksup
我的问题
我需要找出那些记录在tbl_relationswhoessource_id或target_id不存在于tbl_looksup. 这意味着 中不id存在tbl_looksup。更详细地说, tbl_relations 的第一条记录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