Я пытаюсь присоединиться к двум таблицам. Одна таблица заполнена полностью уникальными переменными debtor
. Дубликатов идентификатора должника не может быть. Теперь я хочу объединить его с таблицей items
, где идентификатор debtor.debtor
может появляться несколько раз.
Что я хочу сделать, так это присоединиться только в том случае, если элемент '20004'
не существует в истории заказов.
У меня есть следующая скрипта sql
http://sqlfiddle.com/#!2/a0826/1/0
create table items
(
debtor int,
item int,
qty int,
invoice int
);
create table debtor
(
debtor int,
name varchar(255)
);
insert into debtor(debtor, name)
VALUES ('1000','Mister blue'),
('1001','Mister Orange'),
('1002','Mister Red'),
('1003','Mister Yellow'),
('1004','Mister Green');
INSERT INTO items (debtor, item,qty, invoice)
values ('1000','20001','1','1'),
('1000','20002','1','1'),
('1000','20003','1','1'),
('1000','20004','1','1'),
('1000','20005','1','1'),
('1001','20001','1','2'),
('1001','20002','1','2'),
('1001','20003','1','2'),
('1001','20005','1','2'),
('1002','20001','1','3'),
('1002','20002','1','3'),
('1002','20003','1','3'),
('1002','20004','1','3'),
('1002','20005','1','3'),
('1002','20006','1','3'),
('1003','20001','1','4'),
('1003','20002','1','4'),
('1003','20003','2','4'),
('1003','20004','1','4'),
('1003','20005','1','4');
И я делаю следующий запрос:
SELECT * FROM debtor
JOIN items on debtor.debtor = items.debtor AND items.item != '20004'
Но я все еще получаю все строки счета, которые не являются '20004'
.
Как я могу выполнить запрос таким образом, чтобы соединение не выполнялось, если значение '20004'
не появилось?
Мой предпочтительный ответ, который должен исходить от запроса, должен состоять в том, что должен отображаться только mr Orange.
Кто может мне помочь?