Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Łączenie 3 tabel
Forum PHP.pl > Forum > Bazy danych
visarc
Mam 3 tabele:

subs
- id
- email

subs_tab1
- id
- subs_id
- name

subs_tab2
- id
- subs_id
- name

I chciałbym uzyskać efekt:
  1. ------------------------------------------------------
  2. subs.id | subs.mail | subs_tab1.id | subs_tab2.id
  3. ------------------------------------------------------
  4. 1 asd@mail.com 12 11
  5. 2 mail@mail.com 11 15
  6. 2 mail@mail.com 2 12
  7. 2 mail@mail.com 6 18
  8. 2 mail@mail.com 18
  9. 2 mail@mail.com 28
  10.  
  11. ewentualnie wykorzystując group_concat (?)
  12. 1 asd@mail.com 12 11
  13. 2 mail@mail.com 11, 2, 6, 18 15, 12, 18, 28

Czy da się to zrobić w 1 zapytaniu?
exood
  1. SELECT s.id AS id, s.mail AS mail, s1.id AS subs_tab1_id, s2.id AS subs_tab2_id FROM subs AS s INNER JOIN subs_tab1 AS s1 ON s.id = s1.subs_id INNER JOIN subs_tab2 AS s2 ON s.id = s2.subs_id
visarc
Niestety, tak już próbowałem na samym początku i chyba nie oto mi chodzi. smile.gif
Przykładowo jak mam
subs 1 rekord
subs_tab1 27 rekordów
subs_tab2 20 rekordów
to wywala mi 540 rekordów, bo wypisuje wszystkie kombinacje subs_tab1 i subs_tab2, a chciałbym uzyskać jedynie 27 rekordów.

Dostaje coś takiego:
  1. ------------------------------------------------------
  2. subs.id | subs.mail | subs_tab1.id | subs_tab2.id
  3. ------------------------------------------------------
  4. 2 mail@mail.com 11 15
  5. 2 mail@mail.com 11 11
  6. 2 mail@mail.com 11 16
  7. 2 mail@mail.com 11 12
  8. 2 mail@mail.com 11 19
  9. 2 mail@mail.com 9 2
  10. 2 mail@mail.com 9 4
  11. 2 mail@mail.com 9 7
  12. 2 mail@mail.com 4 28
  13. ...
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.