Dariusz T.

Dariusz T. DariuszTryba.pl

Temat: Wybór elementów z bazy MySQL


tabela1:
id | email | name
1 | ... | ...
2 | ... | ...
3 | ... | ...
4 | ... | ...



tabela2:
id | value
1 | ...
3 | ...


Jak najlepiej wybrać z tabeli1 te wiersze, dla których tabela1.id nie pokrywa się z tabela2.id? Czyli w powyższym przykładzie chcę otrzymać wiersze o id 2 i 4.

Da się to załatwić jednym zapytaniem?

konto usunięte

Temat: Wybór elementów z bazy MySQL

select .. from tabela1 where id not in (select id from tabela2)

Nie polecalbym, jesli korzystac z wewnetrznego cache'u, lepiej rozbij to na dwa zapytania.
Dariusz T.

Dariusz T. DariuszTryba.pl

Temat: Wybór elementów z bazy MySQL

Dzięki! :)

Skrypt będzie wykonywany rzadko, w sumie to służy mi tylko do zrobienia pewnej operacji na bazie, więc może być nawet w jednym zapytaniu.
Wojciech Sznapka

Wojciech Sznapka CTO @ STS Zakłady
Bukmacherskie

Temat: Wybór elementów z bazy MySQL

alternatywnie:

select * from tabela1 t1 where not exists select 1 from tabela2 t2 where t2.id = t1.id

konto usunięte

Temat: Wybór elementów z bazy MySQL

Dariusz T.:
Da się to załatwić jednym zapytaniem?

bez zagnieżdżania selectów:

select tabela1.* from tabela1 left join tabela2 using(id) where tabela2.id is null



Wyślij zaproszenie do