I am trying to join two sql statements into one but have had no success.
I would ideally like the Average query to be added to the end of the columns from the first sql statement.
First statement:
SELECT Modules.UserID, Module_Info.ModuleTitle, Modules.ModuleMarks, Modules.ExamMark, Modules.AssignmentMark, MarkClassification.MarkDescription
FROM Module_Info
INNER JOIN Modules ON Module_Info.ModuleID = Modules.ModuleID
INNER JOIN MarkClassification ON Modules.MarkCodeDescription = MarkClassification.MarkId
WHERE(Modules.UserID = '8')
Second statement:
SELECT AVG(Modules.ExamMark) AS Average
FROM Module_Info
INNER JOIN Modules ON Module_Info.ModuleID = Modules.ModuleID
WHERE (Modules.ModuleID = '2')
You can use a sub query in the select for that, like this:
SELECT Modules.UserID, Module_Info.ModuleTitle, Modules.ModuleMarks,
Modules.ExamMark, Modules.AssignmentMark, MarkClassification.MarkDescription,
(SELECT AVG(Modules.ExamMark)
FROM Module_Info
INNER JOIN Modules ON Module_Info.ModuleID = Modules.ModuleID
WHERE (Modules.ModuleID = '2')) as Average
FROM Module_Info
INNER JOIN Modules
ON Module_Info.ModuleID = Modules.ModuleID
INNER JOIN MarkClassification
ON Modules.MarkCodeDescription = MarkClassification.MarkId
WHERE(Modules.UserID = '8')
you can try
SELECT * FROM
(SELECT Modules.UserID, Module_Info.ModuleTitle, Modules.ModuleMarks, Modules.ExamMark, Modules.AssignmentMark, MarkClassification.MarkDescription
FROM Module_Info
INNER JOIN Modules ON Module_Info.ModuleID = Modules.ModuleID
INNER JOIN MarkClassification ON Modules.MarkCodeDescription = MarkClassification.MarkId
WHERE(Modules.UserID = '8')) t1
JOIN
(SELECT AVG(Modules.ExamMark) AS Average
FROM Module_Info
INNER JOIN Modules ON Module_Info.ModuleID = Modules.ModuleID
WHERE (Modules.ModuleID = '2')) t2
Since you do not have a join condition, it will create a cartesian product of the two queries (ie each row of the first subselect, with each row of the second subselect). Since the 2nd subselect only has one row, it will give you your expected result.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.