我有2个表,我必须比较才知道数据是否在。我试图找到查询,但还找不到。比较数据存储在detail1和detail2,这样定义:比较两个表来检查差异
detail1
D1_ID (integer)
D1_MASTERID (integer)
与数据
| D1_MASTERID | D1_ID |
| 1 | 1 |
| 1 | 3 |
detail2
D2_ID (integer)
D2_MASTERID (integer)
与数据
| D2_MASTERID | D2_ID |
| 1 | 1 |
| 1 | 2 |
| 1 | 4 |
和
master
MASTER_ID (integer)
与数据
| MASTERID |
| 1 |
我试过很多方法,这是最后一次尝试仍然doesnn't工作:
select MASTER_ID, D1_ID, D2_ID
FROM master
LEFT JOIN detail1 ON MASTERID=D1_MASTERID
LEFT JOIN detail2 ON MASTERID=D2_MASTERID
结果我得到的是一样的东西
| MASTERID | D1_ID | D2_ID |
| 1 | 1 | 1 |
| 1 | 1 | 2 |
| 1 | 1 | 4 |
| 1 | 3 | 1 |
| 1 | 3 | 2 |
| 1 | 3 | 4 |
我想什么得到的是:
| MASTERID | D1_ID | D2_ID |
| 1 | 1 | 1 |
| 1 | | 2 |
| 1 | 3 | |
| 1 | | 4 |
我在想一个左连接可以这样做......但它不工作。 或子查询?我真的不知道
我检查了该网页http://sql.sh/cours/jointures但它并没有帮助也...
THX
它是mysql还是oracle?另外,请发布您的预期结果的起始数据 – Aleksej
其实它是在oracle(但它可以在以后的mysql)... – ffert2907