Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Formułowanie zapytania
Forum PHP.pl > Forum > Bazy danych
duzymaju
Mam problem dotyczący poprawnego sformułowania zapytania do "wyciągnięcia" dodatkowych danych o profilu zapisanym w tabelach baz MySQL mojego systemu administracji.
W tabeli mmdsadmlg1 trzymam najważniejsze informacje o profilach, które rozróżniane są za pomocą numerów ID. Dwie pozostałe tabele dotyczą dodatkowych danych podawanych przez użytkownika:

mmdsadmlg2 - definiowany przez admina zestaw dodatkowych danych
daneid tinyint
danenazwa varchar
... (reszta kolumn)

mmdsadmlg3 - wartość konkretnej danej (daneid) konkretnego użytkownika (profid)
profid mediumint
daneid tinyint
wartosc varchar

Użytkownik nie musi podawać wszystkich danych, więc dla konkretnych użytkowników zestaw rekordów z dodatkowymi danymi nie będzie pełny (np. na 5 pól z dodatkowymi danymi użytkownik wypełni tylko 2).

Chciałbym "wyciągnąć" dla konkretnego użytkownika zestaw wszystkich dodatkowych danych zdefiniowanych przez admina i dołączyć te wartości, które wypełnił on podczas rejestracji, czyli otrzymać np. coś takiego:

Imię: Jan
Nazwisko: Kowalski
Adres: [brak danych]
Telefon: 1234567
GG [brak danych]

Zastosowałem zapytanie wykorzystujące JOIN (tu dla użytkownika o ID wartości 1):

  1. SELECT * FROM tableadmlg2 tb2 LEFT JOIN tableadmlg3 tb3 ON tb2.daneid=tb3.daneid WHERE tb3.profid='1'


W tym jednak przypadku MySQL zwraca mi tylko te dane, przy których wartości są wypełnione przez użytkownika 1. Jak można wyświetlić listę wszystkich danych z wartościami pól wypełnionych przez konkretnego użytkownika?
Sprawa jest dość pilna, dlatego bardzo liczę na Waszą pomoc, za którą już dziś serdecznie dziękuję. Jeśli coś byłoby niejasne, proszę pisać na forum lub bezpośrednio do mnie przez GG (612901).
DeyV
sprawdź tak

  1. SELECT *
  2. FROM tableadmlg2 tb2
  3. LEFT JOIN tableadmlg3 tb3 ON ( tb2.daneid=tb3.daneid AND tb3.profid='1' )


ps. nie sądzisz, że warto by tworzyć nieco "czytelniejsze" nazwy tabel ?
duzymaju
Dzięki, dzięki. Teraz działa jak trza! Jeśli chodzi o nazwy tabel, w sumie do niedawna się nad tym nie zastanawiałem ale jesteś już drugą osobą, która zwraca mi na to uwagę, więc może coś w tym jest. biggrin.gif Pomyślimy.
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.