Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [mySQL] zapytanie łączące 2 tabele
cinnek
post 18.12.2004, 20:23:17
Post #1





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 3.12.2003

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


Mam problem i nie umiem sobie z nim poradzic moze to proste ale ja juz wymiękam.


Mam 2 Tabele połączone jakims id np.

tabela1: aaa | id
tabela2: bbb | id


i chodzi mi o zapytanie takie żeby wypisywało aaa | bbb, natomiast jeśli w tabeli1 w polu id jest NULL to żeby wypisało aaa | NULL


czyli wyniki maja mniej wiecej wyglądać tak:

ala | dom
ola | samochod
kasia | null
zosia | pralka

Mam nadzieje ze kumacie o co mi chodzi



wiem że trzeba użyc ifa ale nie wiem jak.


Z góry dzieki za pomoc
Go to the top of the page
+Quote Post
shaun
post 18.12.2004, 21:23:56
Post #2





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 15.12.2004
Skąd: Kołobrzeg

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


  1. <?php
  2. $sql = &#092;"SELECT
  3. a.kolumna, b.inna_kolumna
  4. FROM `tabela1` a, `tabela2` b
  5. WHERE a.id = b.id&#092;";
  6. ?>

nie wiem czy o to Ci chodzi...?
Go to the top of the page
+Quote Post
cinnek
post 22.12.2004, 12:15:02
Post #3





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 3.12.2003

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


Niestety nie o to mi chodziło , w sumie ma to byc coś podobnego tylko jesli w pierwszej tebeli bedzie null to ma dac cały rekord z tej pierwszej tabeli
Go to the top of the page
+Quote Post
pauluZ
post 22.12.2004, 12:52:29
Post #4





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 9.02.2004
Skąd: Toruń

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


Wyczuwam tutaj klasyczny problem - pomijanie rekordów które nie zawierają wszystkich danych ... czyli np. rekordów gdzie powiązanie do drugiej tabeli nie oddaje żadnego wyniku ...

Rozwiązanie to wykorzystanie JOIN.

Nieco jest tutaj:
http://www.w3schools.com/sql/sql_join.asp

  1. SELECT Employees.Name, Orders.Product
  2. FROM Employees LEFT JOIN Orders ON Employees.Employee_ID=Orders.Employee_ID


Jeśli tabela Employees zawiera rekordy które nie mają połączenia do
tabeli Orders to i tak rekordy te zostaną zwrócone ale będą miały
pustą wartość.


--------------------
pauluZ
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: 19.07.2025 - 03:32