Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: INNER JOIN - wyświetlanie wyników
Forum PHP.pl > Forum > Bazy danych > MySQL
lecter007
Hej, mam problem z wyświetleniem wyników zapytania SQL. Powiedzmy, że mam 3 tabele:

tabela1:
id nazwa
1 user1
2 user2
3 user3

tabela2:
id user opcja ile
1 1 1 40
2 1 2 abc
3 2 1 70
4 2 2 cba
5 3 1 10
6 3 2 bca


tabela3:
id user miasto
1 1 Wawa
2 2 Gdansk
3 3 Poznan

Jak wyświetlić pola: nazwa, ile, miasto? Ale tak, żeby z tabeli2 wyświetlić wartości zarówno z wiersza opcja 1 jak i opcja 2 w 1 linii? Teraz wyrzuca mi każdy wierz 2 razy zmieniając wartości pola "ile"...


SELECT tabela1.nazwa, tabela2.ile, tabela3.miasto FROM tabela1 INNER JOIN tabela2 ON tabela1.id=tabela2.user INNER JOIN tabela3 ON tabela1.id=tabela3.user

Z góry dzięki smile.gif

b4rt3kk
  1. SELECT t1.nazwa, t3.miasto, CONCAT((SELECT ile FROM tabela2 WHERE user = t1.id)) AS ile FROM tabela1 t1 JOIN tabela3 t3 ON t1.id = t3.user


Coś w tym stylu powinno zadziałać.
lecter007
Dzięki wielkie, udało mi się to zrobić tak, dodając jeszcze WHERE na końcu aby wyświetlić 1 konkretny wierz:

  1. SELECT t1.nazwa, t3.miasto, (SELECT ile FROM tabela2 WHERE user = t1.id AND opcja=1) AS ile, (SELECT ile FROM tabela2 WHERE user = t1.id AND opcja=2) AS litery
  2. FROM tabela1 AS t1 INNER JOIN tabela3 AS t3 ON t1.id = t3.user
  3. WHERE ((((SELECT ile FROM tabela2 WHERE user = t1.id AND opcja=2))="abc"));
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.