SQL 个问题,加入
SQL problems, JOINS
我的 SQL 代码有问题。我的任务是提供一些关于未教授课程 "Java2"(Kurstilfälle.kurs) 的教师 (Lärare.personnummer) 的信息。代码是正确的,但我的问题是有一位老师没有教过任何课程(kurs)。所以关于她的信息不在结果中。我想在我的结果中得到最后一个人的信息。
我的代码--> http://imgur.com/QT3u4TL
数据库--> https://ilearn2.dsv.su.se/mod/resource/view.php?id=21941
SELECT DISTINCT Person.personnummer, Person.namn, tjänsterum, telefon
FROM Kurstillfälle,
Person,
Lärare
WHERE Person.personnummer = Lärare.personnummer
AND Kurstillfälle.lärare = Person.personnummer
AND Lärare.personnummer NOT IN (SELECT Kurstillfälle.lärare
FROM Kurstillfälle WHERE kurs = 'Java2')
也许有人可以帮我解决这个问题。谢谢
使用连接这应该得到你想要的
SELECT DISTINCT p.personnummer, p.namn, tjänsterum, telefon
FROM Kurstillfälle k
INNER JOIN Person p ON k.larare = p.personnummer
INNER JOIN Lärare l ON p.personnummer = l.personnummer
WHERE k.kurs !='Java2'
采用新风格 JOIN
,return 一位 NOT EXISTS
担任 Java2 老师的老师:
SELECT p.personnummer, p.namn, tjänsterum, telefon
FROM Person p
INNER JOIN Lärare l ON p.personnummer = l.personnummer
WHERE NOT EXISTS (SELECT 1 FROM Kurstillfälle
WHERE kurs = 'Java2'
AND lärare = p.personnummer)
编辑: 我不知道 Access 语法,但请尝试 INNER JOIN
而不是 JOIN
!
我的 SQL 代码有问题。我的任务是提供一些关于未教授课程 "Java2"(Kurstilfälle.kurs) 的教师 (Lärare.personnummer) 的信息。代码是正确的,但我的问题是有一位老师没有教过任何课程(kurs)。所以关于她的信息不在结果中。我想在我的结果中得到最后一个人的信息。
我的代码--> http://imgur.com/QT3u4TL
数据库--> https://ilearn2.dsv.su.se/mod/resource/view.php?id=21941
SELECT DISTINCT Person.personnummer, Person.namn, tjänsterum, telefon
FROM Kurstillfälle,
Person,
Lärare
WHERE Person.personnummer = Lärare.personnummer
AND Kurstillfälle.lärare = Person.personnummer
AND Lärare.personnummer NOT IN (SELECT Kurstillfälle.lärare
FROM Kurstillfälle WHERE kurs = 'Java2')
也许有人可以帮我解决这个问题。谢谢
使用连接这应该得到你想要的
SELECT DISTINCT p.personnummer, p.namn, tjänsterum, telefon
FROM Kurstillfälle k
INNER JOIN Person p ON k.larare = p.personnummer
INNER JOIN Lärare l ON p.personnummer = l.personnummer
WHERE k.kurs !='Java2'
采用新风格 JOIN
,return 一位 NOT EXISTS
担任 Java2 老师的老师:
SELECT p.personnummer, p.namn, tjänsterum, telefon
FROM Person p
INNER JOIN Lärare l ON p.personnummer = l.personnummer
WHERE NOT EXISTS (SELECT 1 FROM Kurstillfälle
WHERE kurs = 'Java2'
AND lärare = p.personnummer)
编辑: 我不知道 Access 语法,但请尝试 INNER JOIN
而不是 JOIN
!