Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MYSQL] Problem z zapytaniem
mazc
post 24.09.2008, 10:54:02
Post #1





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 8.08.2007

Ostrzeżenie: (0%)
-----


witam, czy da sie to wszystko ujac w jednym zapytaniu?


mam 3 tabele

pierwsza:

id|imię|nazwisko|id_drugiej


druga:
id|a1_id trzeciej|a2_id trzeciej|a3_id trzeciej


trzecia:
id|opis|wartosc


chciałbym jednym zapytaniem wyświetlić:

imię|nazwisko|id_drugiej| a1_id trzeciej(opis i wartosc)| a2_id trzeciej(opis i wartosc)| a3_id trzeciej(opis i wartosc)

czy jest to możliwe? czy trzeba rozbijać na parę zapytań?

dziękuje za odpowiedz
Go to the top of the page
+Quote Post
nospor
post 24.09.2008, 11:01:11
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




mozna. poczytaj o left join


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
mazc
post 24.09.2008, 11:36:45
Post #3





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 8.08.2007

Ostrzeżenie: (0%)
-----


hmm tongue.gif sprawdzałem próbowałem ale nic.. najgorsze jest to ze nigdzie nie widziałem takiego przykładu zwykle to co moglem zobaczyć to joiny łączą kolumny.

niestety to co mi wcześniej wyszło... to żeby pobrać to co chce muszę wykonać aż 3 zapytania..


$wynik1=mysql_query("SELECT trzecia.id, opis, wartosc FROM druga JOIN (trzecia, pierwsza) ON pierwsza.id_drugiej=druga.id AND druga.a1=trzecia.id");
$wynik2=mysql_query("SELECT trzecia.id, opis, wartosc FROM druga JOIN (trzecia, pierwsza) ON pierwsza.id_drugiej=druga.id AND druga.a2=trzecia.id");
$wynik3=mysql_query("SELECT trzecia.id, opis, wartosc FROM druga JOIN (trzecia, pierwsza) ON pierwsza.id_drugiej=druga.id AND druga.a3=trzecia.id");

nie chciałbym dodatkowo marnować miejsca w drugiej tabeli na opis z trzeciej:S

może jakieś bardziej szczegółowe naprowadzenie? tongue.gif prosze
Go to the top of the page
+Quote Post
melkorm
post 24.09.2008, 11:59:52
Post #4





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


  1. SELECT t01.wartosc AS w1,t02.wartosc AS w2, t03.wartosc AS w3 FROM test3 t3 INNER JOIN test2 t2 ON (t3.od_drugiej = t2.id) INNER JOIN test t01 ON (t2.id_mat = t01.id) INNER JOIN test t02 ON (t2.id_mat2 = t02.id) INNER JOIN test t03 ON (t2.id_mat3 = t03.id) WHERE t3.id=1


Nie jest to doskonałem zapytanie - poczytaj na temat joinów smile.gif (nie doskonałe bo psiałem na szybko biggrin.gif)

test3 = pierwsza
test2 = druga
test = trzecia

troche pomiesznae ale działa smile.gif


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 09:46