Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Może ktoś rozszyfrować? SELECT a.name ... proszę o pomoc
Forum PHP.pl > Forum > Bazy danych > MySQL
konfeusz
Witam serdecznie.
Napotkałem na pewne zapytanie do bazy danych. Wedlug obecnego stanu mojej wiedzy, jakoś był bym w stanie rozszyfrować całość zapytania, ale muszę poprosić o małą pomoc. Mianowicie, co oznacza np 'a' przed nazwą tabeli... SELECT a.firstname.
np:

$wynik = mysql_query("SELECT a.firstname,a.lastname,a.email,a.lastaccess,SUM(b.timemodified-b.timestart),c.data FROM mdl_user a,mdl_quiz_attempts b, mdl_user_info_data c WHERE a.id=b.userid AND b.userid=c.userid AND c.fieldid = 3 AND a.id > 2 GROUP BY b.userid ASC")
or die('Błąd zapytania');

A najlepiej, jak by ktoś był na tyle uprzejmy i pokolei przetłumaczył to zapytanie na polski wink.gif Będę bardzo wdzięczny, a napewno taka odpowiedz pomoże nie tylko mi, a i innym jeszcze nie douczonym.
Pozdrawiam serdecznie.
alegorn
hm.
mimo wszystko sugerowalbym jakis kurs przerobic, to jest dosc podstawowa informacja.

tutaj konkretnie twoje a jest aliasem zdefiniowanym w sekcji FROM mdl_user a (definicja aliasu czesto jest poprzedzana slowem AS czyli mdl_user AS a)


j.
mmmmmmm
Przede wszystkim to zapytanie masz skopane. Iloczyn kartezjański z 3 tabel?? TYLKO i WYŁĄCZNIE do testów bądż nauki można zrobić coś takiego. Inaczej zarżniesz server. Po drugie - używasz agregatów bez funkcji agregującej - Masz SUM(), a nie masz odpowiedniego GROUP BY. Tylko MySQL pozwala na takie badziewie. I to źle skonfigurowany.
Po trzecie sprawdź EXPLAIN, a potem zamień kolejność warunków i jeszcze raz sprawdź EXPLAIN.
Damonsson
SELECT: wybierz kolumnę firstname z tabeli a itd. oraz sumę kolumn: b.timemodified-b.timestart
FROM: z tabeli:mdl_user, której chwilowo zmienimy nazwę na: a itd.
WHERE: gdzie id z tabeli a = userid z tabeli b itd.
GROUP BY: grupuj po userid z tabeli b

Najważniejsze co ma ze sobą związek, pogrubione
alegorn
mmmmmmm :: robisz niepotrzebne zamieszanie. zapytanie nie jest iloczynem kartezjańskim, zlaczenia tabel sa w warunku where
j.
konfeusz
Dziękuję Panowie za szybką odpowiedz, w szczególności Damonsson'owi dziękuję za krótkie i konkretne wyjaśnienie składni, dzieki któremu wiem co i jak smile.gif.

To, że kurs SQL'a w moim przypadku jest konieczny, to na pewno, bo znam tylko podstawy, ze zwyklymi prostymi zapytaniami. Nie mniej jednak dziekuję wszystkim za sugestie. Pozdrawiam serdecznie.

PS. Polecacie moze jakies ksiazki, albo cos online, ale tak konkretnie.
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.