Temat: zapytanie mysql z 3 tabelami

Witam,
Mam takie pewnie proste pytanie, ale nie moge zatrybić coś :)

mam 3 tabele
user
id

newsletter
id

user_newsletter
id_newsletter
id_user

w user_newsletter zapisują się wysłane pozycje. Czyli jakie id newslettera zostało wysłane do danego usera.

Teraz głowie się jak wywołać jedno zapytanie aby wyświetlić listę userów z danego newslettera który nie ma żadnego wpisu w tabeli user_newsletter
czyli: "Pokaż listę userów do kórych nie został wysłany newsletter o id=1"

Da sie to jednym zapytaniem zrobic?Dawid Brzeziński edytował(a) ten post dnia 21.05.12 o godzinie 06:29
Łukasz Z.

Łukasz Z. Specjalista ds
Informatyki w Mentor
S.A.

Temat: zapytanie mysql z 3 tabelami

Da się:
select id from user where id not in (select id_user from user_newsletter where id_newsletter='tutaj identyfikator newslettera')
Łukasz Z. edytował(a) ten post dnia 21.05.12 o godzinie 08:19

konto usunięte

Temat: zapytanie mysql z 3 tabelami

Lub nieco bezpieczniejsze w przypadku MySQL - mamy pewność że silnik nie będzie próbował wywołać podzapytania dla każdego rekordu z tabeli user:

SELECT id
FROM `user`
LEFT JOIN (
SELECT id_user
FROM user_newsletter
WHERE id_newsletter = 'tutaj identyfikator newslettera'
) AS subq ON subq.id_user = `user`.id
WHERE subq.id_user IS NULL
Bartosz B. edytował(a) ten post dnia 29.05.12 o godzinie 00:28

Następna dyskusja:

Zapytanie mysql, where




Wyślij zaproszenie do