Mam dwie tabele:GROUP BY za pomocą klucza obcego lub klucza podstawowego?
user
=======
id
name
class
marks
=======
id
user_id
sub_id
mark
stół użytkownika zawiera szczegółowe informacje dotyczące użytkownika (student) znaki tabela zawiera znamiona student w różnych przedmiotów o ID przedmiotu
chcę sprowadzić imię, klasa i suma ocen z tych tabel.
Mam dwa pytania:
1. SELECT name, class, SUM(mark) AS total FROM user
LEFT JOIN marks ON marks.user_id = user.id
GROUP BY marks.user_id
///Here in GROUP BY I have used foreign key (marks.user_id)
2. SELECT name, class, SUM(mark) AS total FROM user
LEFT JOIN marks ON marks.user_id = user.id
GROUP BY user.id
///Here in GROUP BY I have used primary key (user.id)
Zarówno daje mi potrzebne dane. Moje pytanie brzmi: z którego należy korzystać?
Czy istnieje jakaś reguła, która mówi, że należy użyć klucza podstawowego w grupie przez LUB klucz obcy w grupie przez LUB coś w tym stylu?
spróbuj uruchomić zapytanie, którego 'user.id' nie ma pasującej wartości dla' marks.user_id'. i zobacz, co się stanie .. –
Co mówi "Wyjaśnij" o obu zapytaniach? –
@ 491243: Pozwól mi to sprawdzić. –