Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: jakie zapytanie? (pozdapytanie?)
Forum PHP.pl > Forum > Bazy danych > MySQL
voytass
mam dwie tabele: jedna zawiera np dane o notebookach a druga tabela dane o wypozyczeniach notebookow.

pierwsza tabela (notebooki):

Kod
id -- nazwa -- numer
------------------------
1    dellA       1111
2    dellB       22222
3    dellC      333333
4    dellD      4444444



druga tabela (historia):

Kod
id  -- ntid  -- data --  zwrot
-------------------------------
1      2        data1       1
2      1        data2       0
3      4        data3       0

ntid - id notebooka

jak wyznaczyc (nazwa, numer) jednym zapytaniem te notebooki ktorych wartosc pola 'zwrot' jest '0'?

MySQL 4.0.20
skobek
witam,

jezeli Cie dobrze zrozumialem to cos takiego powinno zadzialac:

  1. SELECT
  2. *
  3. FROM notebooki n LEFT OUTER JOIN historia h ON n.id=h.ntid
  4. WHERE h.zwrot = 0
voytass
tak, dziala, dzieki

jeszcze nie rozumiem calkowicie tego lewostronnego zlaczania zewnetrznego (chyba tak sie to nazywa)

a mam jeszcze jedno pytanie:

a jak wybrac te notebooki z tabeli pierwszej, ktorych nie ma w tabeli 2 ale bacząc tylko na rekordy 'zwrot=0'?
skobek
najlepiej napisz co by zapytanie mialo zwrocic z tych dwoch tabel, jezeli zapytanie ponizej nie zwraca tego co chciales:

  1. SELECT
  2. *
  3. FROM notebooki n LEFT OUTER JOIN historia h ON n.id=h.ntid
  4. WHERE h.zwrot != 0
voytass
nie tak, chodzi mi o wybranie tych notebookow z pierwszej tablicy, ktorych id nie wystepuja w rekordach charakteryzujacych sie tym, ze maja zwrot=0 (nie bierzemy pod uwage innych rekordow , z roznym od 0 'zwrot')

czyli cos takiego odwrotnego jak do tego pierwszego pytania.
skobek
sprawdz tak:

  1. SELECT *
  2. FROM notebooki n LEFT OUTER JOIN historia h ON n.id=h.ntid AND h.zwrot=0
  3. WHERE h.ntid IS NULL


Czy o to chodziło?
voytass
dzieki, tak dziala
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.