Как объединить результаты 2 таблиц на основе не условия
У меня есть 2 таблицы, скажемTableA
& TableB
определяется так:
создать таблицу TableA (id int, имя varchar (20), partNumber varchar (30));
со значениями как:
insert into TableA values(1,'a1','10');
insert into TableA values(2,'a2','20');
insert into TableA values(3,'a3','30');
insert into TableA values(4,'a4','40');
создать таблицу TableB (id int, имя varchar (20), partNumber varchar (30));
insert into TableB values(5,'b1','10');
insert into TableB values(6,'b2','20');
insert into TableB values(7,'b3','60');
insert into TableB values(8,'b4','70');
Теперь в результате я хочу объединить обе таблицы и получить все записи изTableB
и только те записи изTableA
гдеTableA's partNumber
значение столбца, которое не соответствует ни одному значениюTableB's partNumber
.
Я пробовал ниже запросы, и все они дали тот же результат 14 записей, что не является правильным.
Запрос 1:
выберите b.id в качестве Bid, b.name в качестве Bname, b.partNumber в качестве BPart, a.id в качестве Aid, a.name в качестве Aname, a.partNumber в качестве APart из TableB b оставьте соединение TableA a с a.partNumber! = b .номер части;
Запрос 2:
выберите b.id в качестве Bid, b.name в качестве Bname, b.partNumber в качестве BPart, a.id в качестве Aid, a.name в качестве Aname, a.partNumber в качестве APart из TableB b, TableA a, где a.partNumber! = b. номер части;
Запрос 3:
выберите b.id в качестве Bid, b.name в качестве Bname, b.partNumber в качестве BPart, a.id в качестве Aid, a.name в качестве Aname, a.partNumber в качестве APart из TableB b, оставьте соединение TableA a в a.partNumber, не входящем в ( выберите a.id в качестве Aid из TableB b, присоединитесь к TableA a по a.partNumber = b.partNumber);
Может кто-нибудь помочь мне, где я здесь ошибаюсь? какой правильный способ получить результаты.
Я ожидаю, что результат будет таким:
+------+-------+-------+------+-------+-------+
| Bid | Bname | BPart | Aid | Aname | APart |
+------+-------+-------+------+-------+-------+
| 5 | b1 | 10 | 3 | a3 | 30 |
| 5 | b1 | 10 | 4 | a4 | 40 |
| 6 | b2 | 20 | 3 | a3 | 30 |
| 6 | b2 | 20 | 4 | a4 | 40 |
| 7 | b3 | 60 | 3 | a3 | 30 |
| 7 | b3 | 60 | 4 | a4 | 40 |
| 8 | b4 | 70 | 3 | a3 | 30 |
| 8 | b4 | 70 | 4 | a4 | 40 |
+------+-------+-------+------+-------+-------+
Итак, вот что я имею в виду, в результате я не хочу записиTableA
гдеpartNumber
является10, 20
потому что значения присутствуют вTableB's partNumber
.