Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: RIGHT JOIN z warunkiem
Forum PHP.pl > Forum > Bazy danych > MySQL
Graby
Mam takie tabele z produktami np.
-id_produktu
-nazwa
-opis

zdjęcia:
-id_zdjęcie
-id_produktu
-nazwa_zdjęcia
-glowne (czy zdjęcie jest domyślne)


robie zapytanie:

  1. SELECT * FROM produkty p RIGHT JOIN zdjęcia z ON p.id_produktu=z.id_produktu


i teraz chciałbym zeby z to zapytanie pobrało mi wszystkie produkty, a jesli mają zdjęcie to tez zdjęcie, ale takie które ma główne=1. zdjęć moze być kilka do każdego produktu, albo żadnego

Nie przychodzi mi zadne rozwiązanie do głowy, proszę o pomoc
blooregard
  1. SELECT * FROM produkty p LEFT JOIN zdjęcia z ON p.id_produktu=z.id_produktu WHERE z.glowne=1

Może tak.
Graby
w tym wypadku wyswietli tylko rekordy które maja zdjecie, a ja potzebuje te które nie maja zdjecia, a jak maja to ma podawac tylko to co ma glowne ustawione na 1
bounty
hmm a możemy wiedzieć jaki jest warunek czy zdjęcie jest czy nie ma
podałeś tylko pole w którym sprawdzasz czy jest domyslne
Graby
jak jest zdjęcie to jest jego nazwa i id_produktu ofcoz
blooregard
  1. SELECT * ,
  2. (SELECT IF(z.glowne=1,z.id_zdjecia,NULL) FROM zdjecia z WHERE z.id_produktu = p.id_produktu)
  3. AS zdjecie_glowne
  4. FROM produkty p


A coś takiego?
trucksweb
Cytat
a ja potzebuje te które nie maja zdjecia, a jak maja to ma podawac tylko to co ma glowne ustawione na 1


cos tu mieszasz, albo chcesz produkty tylko bez zdjec albo produkty, ktore maja zdjecie glowne albo wszystkie produkty z zaznaczeniem ktore z nich maja zdjecie glowne

  1. SELECT * FROM produkty p LEFT JOIN zdjęcia z ON p.id_produktu=z.id_produktu AND z.glowne=1
Graby
to zapytanie nie pokaże produktów bez zdjęć
blooregard
Cytat
to zapytanie nie pokaże produktów bez zdjęć

Ale sprawdziłes w tej swojej bazie, czy tak "gdybasz" ?
Graby
tłumaczę raz jeszcze postaram się dokładniej:

potrzebuje wyjąć wszystkie produkty, jeśli produkt nie ma zdjęć to w polach z danymi zdjęć czyli
-id_zdjęcie
-id_produktu
-nazwa_zdjęcia
-glowne

mają być "nulle",
jeśli natomiast produkt ma zdjęcia to ma pokazać tylko 1 rekord zdjęcia, to które ma glowne ustawione na 1

myślę ze lepiej tego się wytłumaczyć nie da
blooregard
Cytat
tłumaczę raz jeszcze postaram się dokładniej:

Pytam jeszcze raz, postaram sie dokładniej:
Czy sprawdziłeś poprzednio podane zapytanie, czy "gdybasz" co pokaże?
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.