MySQL выбрать идентификаторы из одной таблицы, которые не найдены в другой таблице при определенных условиях - PullRequest
1 голос
/ 12 апреля 2011

Используя следующие две (упрощенные) структуры таблиц, я хотел бы найти все значения 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 ]

1 голос
/ 12 апреля 2011
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)
0 голосов
/ 12 апреля 2011
select distinct session_id 
from table1 where session_id not in (select session_id from table2) and flag='yes'
...