Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][SQL] Łączenie poziomej i ponowej tabeli
Forum PHP.pl > Forum > Przedszkole
sinke
Witam,

Mam takie table:
-poziomą
-------------------------------------------------------
id_adresy_2 | adres1 | adres2 | adres3 | adres4 |
-------------------------------------------------------
1 | 1 | 4 | 3 | 2 |
-------------------------------------------------------
-pionową
---------------------------
id_adres | adres |
---------------------------
1 | Bielsko-Biała |
---------------------------
2 | Katowice |
---------------------------
3 | Tychy |
---------------------------
4 | Żywiec |
---------------------------

Wymyśliłam coś takiego:
  1. SELECT a.adres1, b.adres, a.adres2, c.adres, a.adres3, d.adres, a.adres4 FROM adresy_2 a
  2. JOIN adresy b ON a.adres1 = b.id_adres
  3. JOIN adresy c ON a.adres2 = c.id_adres
  4. JOIN adresy d ON a.adres3 = d.id_adres
  5. JOIN adresy e ON a.adres4 = e.id_adres
  6. WHERE id_adresy_2 = 9


Działa to ale wyniki wyświetlają się w takiej wersji:
--------------------------------------------------------------------------------------
adres1 | Bielsko-Biała | adres2 | Żywiec | adres3 | Tychy | adres4 | Katowice |
--------------------------------------------------------------------------------------

A chciałaby się dowiedzieć jak połączyć pionową i poziomą tabele, tak żeby wynik tego złączenia pokazywał się w pionowej tabelce tak jak poniżej?

--------------------------
adres 1 | Bielsko-Biała |
--------------------------
adres 2 | Żywiec |
--------------------------
adres 3 | Tychy |
--------------------------
adres 4 | Katowice |
--------------------------
pmir13
  1. SELECT a.nazwa,adresy.adres FROM
  2. ( SELECT 'adres 1' AS nazwa,adres1 AS a_id FROM adresy_2
  3. UNION SELECT 'adres 2',adres2 FROM adresy_2
  4. UNION SELECT 'adres 3',adres3 FROM adresy_2
  5. UNION SELECT 'adres 4',adres4 FROM adresy_2
  6. WHERE id_adresy_2 = 9 ) a
  7. JOIN adresy ON adresy.id_adres=a.a_id
  8. ORDER BY a.nazwa


To powinno zadziałać, ale naprawdę warto byłoby zastanowić się nad trochę lepszą strukturą tabel.
sinke
Też nad tym myślałam, aby zmienić strukturę tabel, ale nie wiem na jaką?

Ogólny zarys strony wygląda tak:

Mam proces dodawania podzielony na dwie części:
1. W pierwszej części użytkownik dodaje dane typu: nr zamówienia, tytuł zamówienia, datę zamówienia oraz wybiera adresy i te wszystkie dane lądują w tablicy zamówienia, oprócz adresów, które są zapisywane w osobnej tabeli (a dokładnie tylko ich id), a w kolumnie adresy jest zapisywany id, który jest nadawany w tablicy z adresami. Obrazek ilustruje powyższe tabele:


I po wyciągnięciu danych z tych tabel chce, żeby tak to wyglądało:
Nr zamówienia: 222/3
Tytuł zamówienia: A4 Listy
Data zamówienia: 22-11-2011
Adresy:
Bielsko-Biała
Katowice
Cieszyn
Katowice
Tychy

I nie za bardzo wiem jak to zrobić, bo powyższe rozwiązanie nie do końca wygląda tak jakbym chciała...

Ma ktoś jaką propozycje jakby to zrobić inaczej?
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.