Используя следующие две (упрощенные) структуры таблиц, я хотел бы найти все значения DISTINCT session_id
, которые появляются в TABLE1
, где flag = yes
, что НЕ появляются в TABLE2
, где progress = 11
.
TABLE1
не имеет повторяющихся значений session_id
.
< Сильный > TABLE1
id_table1 | session_id | flag
------------------------------
1 | abcd | yes
2 | efgh | no
3 | ijkl | yes
4 | mnop | yes
5 | vwxyz | yes
< Сильный > TABLE2
id_table2 | session_id | progress
---------------------------------
1 | abcd | 3
2 | efgh | 11
3 | ijkl | 2
4 | ijkl | 7
5 | mnop | 11
6 | vwxyz | 10
7 | vwxyz | 11
Ожидаемые результаты здесь:
abcd
ijkl
2 ответа
SELECT
DISTINCT t1.session_id
FROM
id_table1 t1
INNER JOIN
id_table2 t2
ON
t1.session_id = t2.session_id
WHERE
t1.flag = 'yes'
AND
t2.progress NOT IN(11)
select distinct session_id
from table1 where session_id not in (select session_id from table2) and flag='yes'
Похожие вопросы
Новые вопросы
mysql
MySQL — это бесплатная система управления реляционными базами данных (RDBMS) с открытым исходным кодом, которая использует язык структурированных запросов (SQL). НЕ ИСПОЛЬЗУЙТЕ этот тег для других БД, таких как SQL Server, SQLite и т. д. Это разные БД, которые используют свои собственные диалекты SQL для управления данными. В вопросе всегда указывайте точную версию сервера. Версии 5.x сильно отличаются по своим возможностям от версий 8+.