Извлечь записи из таблицы A, связанные с данными в таблице B - PullRequest
0 голосов
/ 30 октября 2019

Я пытаюсь получить все билеты из tableA, где tableB.tid связан с tableB.category. обратите внимание, что последние 2 записи в таблице A не соответствуют вышеуказанному условию.

tableA
tickets  tid   category 
124560   123   xx 
116550   125   xx
124777   244   yy
225560   223   yy
258965   244   xx
445878   123   yy
tableB
tid   category  des
123   xx        description_xx_123
223   yy        description_yy_223
125   xx        description_xx_125
244   yy        description_yy_223

Ожидаемый результат

tableA
tickets
124560 
116550 
124777
225560

Ответы [ 3 ]

2 голосов
/ 30 октября 2019

Используйте объединение для этого

SELECT tableA.tickets FROM tableA
JOIN tableB  
ON tableA.tid = tableB.tid 
AND tableA.category = tableB.category

Можно также использовать предложение where

SELECT tableA.tickets FROM tableA, tableB  
WHERE tableA.tid = tableB.tid 
AND tableA.category = tableB.category
2 голосов
/ 30 октября 2019

Когда вы выполняете внутреннее соединение, оно возвращает результаты только в обеих таблицах.

select a.tickets
from tablea a
join tableb b on a.tid = b.tid and a.category = b.category
1 голос
/ 30 октября 2019

Я рекомендую exists:

select a.*
from tabla a
where exists (select 1
              from tableb b
              where a.tid = b.tid and a.category = b.category
             );

Это игнорирует дубликаты в tableb.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...