Tôi có hai bảng:NHÓM THEO TỪ khóa chính hoặc khóa chính?
user
=======
id
name
class
marks
=======
id
user_id
sub_id
mark
bảng người dùng chứa các chi tiết của người dùng (sinh viên) dấu bảng chứa những dấu tích của một sinh viên trong các môn học khác nhau với id chủ đề
Tôi muốn lấy tên, lớp và tổng số điểm từ các bảng này.
Tôi có hai câu hỏi:
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)
Cả hai mang lại cho tôi yêu cầu dữ liệu. Câu hỏi của tôi là tôi nên sử dụng cái nào?
Có quy tắc nào cho biết bạn nên sử dụng khóa chính trong nhóm bằng OR khóa ngoại trong nhóm bằng HOẶC một cái gì đó như thế?
thử chạy truy vấn 'user.id' không có giá trị khớp cho' marks.user_id'. và xem điều gì xảy ra .. –
'Giải thích' nói gì về cả hai truy vấn? –
@ 491243: Hãy để tôi kiểm tra điều đó. –