Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapytania zagnieżdżone
Forum PHP.pl > Forum > Bazy danych > MySQL
mimol
Witam
Mam takie zapytanie
  1. SELECT miejscowosc_id FROM pracodawcy WHERE id =
  2. (SELECT pracodawcy_id FROM pracownicy WHERE zarobek >2000)

Oczywiście wywala błąd 'Subquery returns more than 1 row'
Czy jest jakiś sposób aby 'naprawić' to zapytanie, czy trzeba używać JOINA?
sazian
zamień "=" na "in"

mimol
Dzięki za pomoc.
Teraz chciałbym wypisać
IMIE pracownika, NAZWISKO pracownika, MIEJSCOWOSC gdzie pracuje, NAZWE pracodawcy, MIEJSCOWOSC skad jest Pracodawca, Zarobek

Udało mi się ukulać taki kod. Tylko nie wiem jak dodać jeszcze miejscowość skad jest pracodawca.
Samo wyciągniecie
(SELECT nazwa FROM miejscowosc INNER JOIN pracodawcy ON miejscowosc.id=pracodawcy.miejscowosc_id)

  1. SELECT pracownicy.imie, pracownicy.nazwisko, miejscowosc.nazwa AS miejscowosc, CONCAT(pracodawcy.imie, ' ' ,pracodawcy.nazwisko) AS pracodawca, pracownicy.zarobek FROM miejscowosc
  2. INNER JOIN pracownicy ON miejscowosc.id=pracownicy.miejscowosc_id
  3. INNER JOIN pracodawcy ON pracownicy.pracodawcy_id = pracodawcy.id
  4. WHERE pracownicy.zarobek> 2000


Wyglad tabel
Miejscowosc
id, nazwa

Pracownicy
id, imie, nazwisko, zarobek, miejscowosc_id, pracodawcy_id

Pracodawcy
id, imie, nazwisko, miejscowosc_id
CuteOne
  1. SELECT
  2. pracownicy.imie, pracownicy.nazwisko, miejscowosc.nazwa AS miejscowosc, m.nazwa AS pracodawca_miasto
  3. CONCAT(pracodawcy.imie, ' ' ,pracodawcy.nazwisko) AS pracodawca, pracownicy.zarobek
  4. FROM
  5. miejscowosc
  6. LEFT JOIN pracownicy ON miejscowosc.id=pracownicy.miejscowosc_id
  7. LEFT JOIN pracodawcy ON pracownicy.pracodawcy_id = pracodawcy.id
  8. LEFT JOIN miejscowosc AS m ON (m.id = pracodawcy.miejscowosc_id)
  9. WHERE
  10. pracownicy.zarobek> 2000
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.