#sql
Вопрос:
У меня есть следующая таблица:
key1 key2 col3 col4 col5 value
A B C D F good1
F C C D F adsf
A D C D F good2
N B C D F afd
A B C D F dsf
A D C D F fads
Я пытаюсь извлечь значения из столбцов key1 и key2, где значение включает «хорошо». Используя затем, я хотел бы извлечь все строки из таблицы, которые включают эти ключи.
Ожидаемый результат таков:
key1 key2 col3 col4 col5 value
A B C D F good1
A D C D F good2
A B C D F dsf
A D C D F fads
До сих пор у меня было:
SELECT DISTINCT key1, key2
FROM my_table tb1
WHERE tb1.value LIKE '%good%'
с пандами python я бы сохранил результат вышесказанного и извлек все столбцы из my_table
. Есть ли способ сделать это эффективно в SQL без необходимости создавать вторую таблицу?
Ответ №1:
Вы можете использовать exists
для этого:
select t.*
from my_table t
where exists (select 1
from my_table t2
where t2.value like '%good%' and
t2.key1 = t.key1 and
t2.key2 = t.key2
);