Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: LEFT JOIN - dodatkowe warunki
Forum PHP.pl > Forum > Bazy danych > MySQL
ecnelis
Witam, mam nastepujacy problem. Mianowicie chodzi o to, ze probuje zrobic cos takiego:
  1. SELECT t1.*, t2.FIELD AS superfield
  2.  
  3. FROM table1 t1
  4.  
  5. LEFT JOIN table2 t2 ON t2.reference_id = t1.id
  6.  
  7. WHERE t2.bool1 = 1 AND t2.bool2 = 0 AND t1.string1 = 'string'


chodzi o to, zeby do tabeli table1 zostaly dolaczone rekordy z tabeli table2 ktorych wartosc pol binarnych (w naszym przypadku bool1 i bool2) wynosza kolejno 1 i 0. Ponadto, zalezy mi na tym, aby w momencie gdy takowych nie ma zostaly mi zwrocone rekordy z tabeli table1 z wartoscia superfield (czyli przealiasowana wartosc z table2.field) jako NULL.
Dodam, ze w chwili obecnej otrzymuje rekordy tylko wtedy gdy spelnione sa wszystkie trzy warunki (dwa pola binarne z t2 oraz string z t1).

Z gory dziekuje za Wasza pomoc!

ok , problem solved, prosze o kasacje tematu:)
AxZx
to wstaw w tytul tag [solved] i podziel sie z innymi tym rozwiazaniem.
mathijas
Podzapytanie:
  1. SELECT t1.*, tt.superfield
  2. FROM table1 t1
  3. LEFT JOIN ( SELECT reference_id, FIELD AS superfield FROM table2 WHERE bool1 = 1 AND bool2 = 0
  4. ) tt ON t1.id = tt.reference_id
  5. WHERE t1.string1 = 'string'

Być może jest jakieś prostsze rozwiązanie ale jest 7.30 i to jest pierwsze co mi przyszło do głowy winksmiley.jpg
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.