Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [sql] zapytanie: 2 tabele, 1 relacja, 3 pola
Forum PHP.pl > Forum > Bazy danych
juzef6
Czesc,

Mam problem ze sformulowaniem zapytania do bazy. Mam dwie tabele, przykladowo:

Kod
tabela: news (n)
id | title | photo1_id | photo2_id | photo3_id

tabela: photos (p)
id | file | description


Rekord w tabeli news posiada w polach photoX_id numer ID zdjecia z tabeli photos. I teraz chce za pomoca jednego zapytania uzyskac takie dane:

Kod
n.id, n.title, p.file(1), p.file(2) i p.file(3)


Jesli byloby jedno zdjecie to nie ma problemu:

  1. SELECT n.id, n.title, p.file, p.description
  2. FROM news n, photos p WHERE n.photo=p.id AND n.id=100


Ale jak w taki sposob wyciagnac 3 zdjecia (nazwy plikow i opisy) za pomoca jednego zapytania?
toczek
moze takie cos Ci pomoze, ale w sumie to wyciaga max. 3 wiersze a nie w 3 kolumnach ;]. Pewnie jakiegos widoku czy czegos trzeba uzyc (ale tego jeszcze nie umiem smile.gif ).
  1. SELECT n.id, n.title, p.file, p.description
  2. FROM news n, photos p
  3. WHERE (n.photo1_id = p.id OR n.photo2_id = p.id OR n.photo3_id = p.id) AND n.id = 100;
SongoQ
Troche nie rozumiem, jesli masz 3 foto przypisanie do newsa to wtedy wyciagniesz 3 fotki. To masz dopasowanie rekordow i tyle.
juzef6
Ok, już sobie poradziłem. Sory za zamieszanie - użylem kilkukrotnie LEFT JOIN i teraz moge juz bez problemu wyciagnac potrzebne dane.


Dzieki za zainteresowanie.
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.