Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapytanie SQL
Forum PHP.pl > Forum > Bazy danych > MySQL
stirith
Mam taką strukturę tabel:

Kod
Firmy:
id
nazwa_firmy


Kod
Pracownicy:
id
id_firmy
imie_pracownika
nazwisko_pracownika



Jak wyciągnąć wszystkie firmy, które nie mają żadnego pracownika ?
bpskiba
Tak na szybko i mało elegancko...

  1. SELECT * FROM firmy WHERE id NOT IN(SELECT DISTINCT id_firmy FROM pracownicy)
Sephirus
Szybko i w miarę elegancko wink.gif

  1. SELECT DISTINCT f.* FROM firmy f LEFT JOIN pracownicy p ON f.id = p.id_firmy WHERE p.id_firmy IS NULL
BaN
Jeszcze można:
  1. SELECT f.*
  2. FROM firmy AS f
  3. WHERE NOT EXISTS (SELECT 1 FROM pracownicy AS p WHERE p.id_firmy=f.id LIMIT 1)

Zobacz EXPLAIN EXTENDED i wybierz odpowiednie zapytanie, chociaż wydaje się mi, że moje będzie najszybsze, zależy jak masz poustawiane indeksy i ile tabele mają rekordów
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.