Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL] Join, połączenie tabel
Xarias09
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 16.01.2011

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


Witam !

Mam taki problem, że nie potrafię złączyć tych tabel

To jest moje zapytanie:

  1. SELECT region_players.region_id,user.name,region_cuboid.min_x,region_cuboid.min_y,region_cuboid.min_z FROM region_players,user,region_cuboid WHERE region_players.user_id = user.id AND region_players.region_id = region_cuboid.region_id


Potrzebuje wyświetlić wszystkie region_id z tabeli region_cuboid zamiast z region_players pola region_id

Jak to zrobić?

Ten post edytował Xarias09 8.02.2012, 13:50:03
Go to the top of the page
+Quote Post
alegorn
post
Post #2





Grupa: Zarejestrowani
Postów: 341
Pomógł: 40
Dołączył: 23.06.2009

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


nie bardzo lapie co chcesz osiagnac.

po pierwsze naucz sie pisac zapytania z JOIN
tutaj mialbys:

  1. FROM
  2. region_players rp
  3. JOIN user u ON rp.user_id = u.id
  4. JOIN region_cuboid rc rp.region_id = rc.region_id



po drugie, jesli chcesz wyswietlic oklumny o tych samych nazwach z roznych tablem, to albo uzywasz aliasow, albo pelnych nazw tabelm przed kolumna :
  1. SELECT u.id

po trzecie,
Cytat
Potrzebuje wyświetlić wszystkie region_id z tabeli region_cuboid zamiast z region_players pola region_id

no ale skoro rp.region_id = rc.region_id to co za roznica?

opisz problem w bardziej przejrzysty sposob
Go to the top of the page
+Quote Post
Xarias09
post
Post #3





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 16.01.2011

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


To tak,

1. tabela region_players zawiera TYLKO regiony które MAJĄ już właściciela
2. tabela region_cuboid zawiera wszystkie regiony + ich współrzędne i z niej chce wyświetlić je wszystkie w postaci tabeli ze współrzędnymi (min_x,min_y,min_z) oraz ich właścicielami, zdjęcie tabeli poniżej

http://i.imgur.com/BsKf1.png

3. Właściciele znajdują się w tabeli region_players (W postaci liczby) które są potem wyjaśnione w następnej tabeli "user"

Chodzi mi o to aby pozyskać jakiś kod który wyświetli wszystkie region_id z region_cuboid i dobierze do poszczególnych regionów właścicieli oraz współrzędne wedle tabel region_players/user

I na ten moment dysponuje tylko takim kodem:
SELECT region_players.region_id,user.name,region_cuboid.min_x,region_cuboid.min_y,regio
n_cuboid.min_z FROM region_players,user,region_cuboid WHERE region_players.user_id = user.id AND region_players.region_id = region_cuboid.region_id

Ale nie mam zielonego pojęcia jak to zrobić, kumpel mi podpowiada, że trzeba wykorzystać drugi SELECT ;/


Go to the top of the page
+Quote Post
alegorn
post
Post #4





Grupa: Zarejestrowani
Postów: 341
Pomógł: 40
Dołączył: 23.06.2009

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


tak bez sprawdzania, ale powinno zadzialac.

  1. SELECT
  2. rc.region_id,
  3. u.name,
  4. rc.min_x,
  5. rc.min_y,
  6. rc.min_z
  7. FROM
  8. region_cuboid rc
  9. LEFT JOIN region_players rp ON rp.region_id = rc.region_id
  10. LEFT JOIN user u ON rp.user_id = u.id
  11.  


powinno wyswietlic WSZYSTKIE rekordy z region_cuboid i dołączyć rekordy z tabeli user, jesli takowe znajdzie

o to chodzi?
j.
Go to the top of the page
+Quote Post
Xarias09
post
Post #5





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 16.01.2011

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


tak exclamation.gif biggrin.gif zakochany.gif i gitara tongue.gif

Tylko ostatnie pytanie jak sprawić aby w tabeli html wyświetlało "NULL" (brak wyniku, nie znaleziono) czy "IS NULL" to dobra funkcja do tego?
Go to the top of the page
+Quote Post
alegorn
post
Post #6





Grupa: Zarejestrowani
Postów: 341
Pomógł: 40
Dołączył: 23.06.2009

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


is_null w php? tak. powinno zadzialac.
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 Aktualny czas: 20.08.2025 - 05:15