Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: złożone zapytanie
Forum PHP.pl > Forum > Bazy danych > MySQL
szypi1989
Witam otóż mam 3 tabele na przykład:

users_info
------------------
id|name|username|hobby|music

i mam tutaj drugą tabele

users_info_hobby
--------------------
id|name_hb|

i mam tutaj 3 tabele

users_info_music
----------------------
id|name_mc|

i chciałbym aby komputer wyświetlił mi z tabeli users_info name,surname,hobby(plus z tabeli users_info_hobby jeśli users_info_hobby.id=users_info.id czyli jeśli istnieje) ,music (plus z tabeli users_info_music jeśli users_info_music.id=users_info.id czyli jeśli istnieje) jak zrobić takie zapytanie?

próbowałem tak:
  1. SELECT * FROM users_info us,users_info_hobby hb,users_info_music mc WHERE us.id>0 OR us.id=hb.id OR us.id=mc.id
ale za dużo wyników mi podaje niestety
mmmmmmm
  1. SELECT * FROM users_info us JOIN users_info_hobby hb ON us.id=hb.id JOIN users_info_music mc ON us.id=mc.id WHERE us.id>0
szypi1989
Próbowałęm tak i jest wszystko ładnie,ale chodzi mi o to aby pokazał też wyniki ,których te id się nie łączą.rozumiesz?
bo pokazuje mi tylko te wyniki które się łączą,a jeśli w hb.id nie istnieje taki wyniki jak us.id to mi nie pokazuje tego wyniku,a ja bym chciał uzyskać wszystkie wyniki.

  1. SELECT CONCAT(us.hobby," ",(SELECT name FROM users_info_hobby WHERE id=us.id)) FROM users_info us


I tak samo łączy mi tylko wyniku w których us.id jst równy users_info_hobby sad.gif(( a potrzebuje to połączyć za pomocą CONCAT

dobra mam odpowiedz:
  1. SELECT CONCAT(us.hobby," ",IFNULL((SELECT name FROM users_info_hobby WHERE id=us.id)," ")) FROM users_info us
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.