Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Relacja n:m, Pobieranie wszystkich danych.
stabilq
post 4.09.2012, 16:56:53
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 14.05.2011

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


Witam,

Otóż posiadam dwie tabele a i b połączone ze soba trzecią tabelą c (relacja wiele do wielu).
Tabela 'a' zawiera id, imie.
Tabela 'b' zawiera id, tytul.
Tabela 'c' zawiera aid i bid.

Problem mój polega na tym, że nie wiem w jaki sposób pobrać wszystkie dane z bazy. Załóżmy, że mam takie relacje:

a
1 tomek
2 marek
3 zosia

b
1 cokolwiek
2 cokolwiek1
3 okolwiek2

c
1 1
2 2

Takie zapytanie:
  1. SELECT * FROM `a` LEFT JOIN c ON (a.id=c.aid) LEFT JOIN b ON (c.bid=b.id) WHERE (a.imie LIKE '%o%' OR b.tytul LIKE '%o%')


zwróci:

tomek cokolwiek
marek cokolwiek1
zosia NULL

Natomiast takie, gdzie zamiast LEFT JOIN jest RIGHT JOIN

  1. SELECT * FROM `a` LEFT JOIN c ON (a.id=c.aid) RIGHT JOIN b ON (c.bid=b.id) WHERE (a.imie LIKE '%o%' OR b.tytul LIKE '%o%')


zwróci:

tomek cokolwiek
marek cokolwiek1
NULL cokolwiek2

Jak zbudowac zapytanie, o ile to możliwe, które zwróci:

tomek cokolwiek
marek cokolwiek1
zosia NULL
NULL cokolwiek2

Mam nadzieję, że napisałem w miarę jasno.
Z góry dziękuję za odpowiedź.
Go to the top of the page
+Quote Post

Posty w temacie
- stabilq   Relacja n:m   4.09.2012, 16:56:53
- - sazian   FULL JOIN pl.wikipedia.org/wiki/Join_(SQL)   4.09.2012, 19:21:35


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: 14.08.2025 - 03:25