Ich habe zwei Tabellen:GROUP BY Fremdschlüssel oder Primärschlüssel?
user
=======
id
name
class
marks
=======
id
user_id
sub_id
mark
Benutzertabelle die Details Benutzer enthält (Schüler) Markierungen Tabelle sind die Noten eines Schülers enthält in verschiedenen Fächern mit dem Betreff id
ich Namen holen wollen, Klasse und Gesamtmarkierungen aus diesen Tabellen.
Ich habe zwei Anfragen:
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)
Beide gibt mir Daten erforderlich. Meine Frage ist welche soll ich verwenden?
Gibt es eine Regel, die besagt, dass Sie den Primärschlüssel in der Gruppe verwenden sollen, indem Sie einen OR-Fremdschlüssel in der Gruppe eingeben, indem Sie etwas Ähnliches verwenden?
versuchen, die Abfrage auszuführen, die 'user.id' keinen übereinstimmenden Wert für' marks.user_id' hat. und sehen, was passiert. –
Was sagt 'Explain' zu beiden Fragen? –
@ 491243: Lass mich das überprüfen. –