Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zapytanie SQL
stirith
post
Post #1





Grupa: Zarejestrowani
Postów: 162
Pomógł: 2
Dołączył: 18.01.2008

Ostrzeżenie: (0%)
-----


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 ?

Ten post edytował stirith 14.05.2012, 08:50:56
Go to the top of the page
+Quote Post
bpskiba
post
Post #2





Grupa: Zarejestrowani
Postów: 340
Pomógł: 49
Dołączył: 3.07.2009
Skąd: Rzeszów

Ostrzeżenie: (0%)
-----


Tak na szybko i mało elegancko...

  1. SELECT * FROM firmy WHERE id NOT IN(SELECT DISTINCT id_firmy FROM pracownicy)


Ten post edytował bpskiba 15.05.2012, 06:20:16
Go to the top of the page
+Quote Post
Sephirus
post
Post #3





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Szybko i w miarę elegancko (IMG:style_emoticons/default/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


Ten post edytował Sephirus 15.05.2012, 07:13:51
Go to the top of the page
+Quote Post
BaN
post
Post #4





Grupa: Zarejestrowani
Postów: 158
Pomógł: 43
Dołączył: 9.11.2007

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 16:19