Выберите столбец из таблицы1, которого нет в таблице2 - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть две таблицы

table1
=======================================
tid    subcategory     category
---------------------------------------
1      SUBCATEGORY1    CATEGORY1
2      SUBCATEGORY1    CATEGORY2
3      SUBCATEGORY2    CATEGORY1
4      SUBCATEGORY3    CATEGORY1
5      SUBCATEGORY4    CATEGORY1
6      SUBCATEGORY5    CATEGORY1
7      SUBCATEGORY6    CATEGORY1
8      SUBCATEGORY7    CATEGORY1
9      SUBCATEGORY8    CATEGORY1
10     SUBCATEGORY9    CATEGORY1


table2
=======================================
t2id   subcategory     category  pid
---------------------------------------
1      SUBCATEGORY1    CATEGORY1  1
2      SUBCATEGORY1    CATEGORY2  1
3      SUBCATEGORY2    CATEGORY1  1

Я пытаюсь показать все строки таблицы1, которых нет в таблице2, результат должен выглядеть следующим образом ...

=======================================
tid    subcategory     category
---------------------------------------
4      SUBCATEGORY3    CATEGORY1
5      SUBCATEGORY4    CATEGORY1
6      SUBCATEGORY5    CATEGORY1
7      SUBCATEGORY6    CATEGORY1
8      SUBCATEGORY7    CATEGORY1
9      SUBCATEGORY8    CATEGORY1
10     SUBCATEGORY9    CATEGORY1

Я используя этот запрос ...

select tl.* from table1 tl where subcategory and category not in(SELECT tl.subcategory, tl.category  FROM table1 as tl join table2 as bm where bm.pid='1' and tl.subcategory=bm.subcategory and tl.category=bm.category);

но он не работает, помогите пожалуйста ...

1 Ответ

1 голос
/ 22 апреля 2020

Я бы использовал существующую логи c здесь:

SELECT t1.tid, t1.subcategory, t1.category
FROM table1 t1
WHERE NOT EXISTS (SELECT 1 FROM table2 t2
                  WHERE t2.pim = 1 AND
                        t2.subcategory = t1.subcategory AND t2.category = t1.category);
...