2

我有这些记录:

Table siswa
student_id | student_name |
---------------------------
1          | Abi          |
2          | Bayu         |
3          | Charles      | 


Table nilai
semester | subject | student_id | mark |
----------------------------------------
1        | 1       | 1          | 7    |
1        | 1       | 2          | 9    |
1        | 1       | 3          | 8    |
1        | 2       | 1          | 4    |
1        | 2       | 2          | 6    |
2        | 1       | 1          | 9    |

我将在第 2 学期和第 1 科目中选择所有学生姓名。我期望的结果是这样的:

student_name | mark 
-------------------
Abi          | 9
Bayu         | null
Charles      | null

我试过这个查询,但它不起作用。我怎样才能做到这一点?

SELECT s.name FROM siswa s LEFT OUTER JOIN nilai n ON s.student_id = n.student_id 
WHERE n.semester = '2' AND n.subject = '1'
4

1 回答 1

2

也许你正在寻找这样的东西:

SELECT s.student_name, n.mark FROM siswa s
LEFT JOIN nilai n ON s.student_id = n.student_id AND semester = 2 AND subject = 1

您需要在left join. 如果您在where条款上这样做,那么您将删除它们。

于 2013-10-13T05:21:10.157 回答