Die Vorbehalt hier ist, ich muss diese komplett mit nur den folgenden Tools:SQL: Alle Zeilen in einer Tabelle, wenn die Zeilen ein Fremdschlüssel in einer anderen Tabelle sind
Das grundlegende SQL-Konstrukt:
SELECT FROM .. AS WHERE..
. Eindeutig ist in Ordnung.Set Betreiber:
UNION, INTERSECT, EXCEPT
erstellen temporäre Beziehungen:
CREATE VIEW... AS ...
arithmetische Operatoren wie
<, >, <=, ==
usw.Subquery kann nur im Rahmen von
NOT IN
oder eine Subtraktion verwendet werden. I.e. (select ... from... where not in (select..
.)
Ich kann keine join, limit, max, min, count, sum, having, group by, not exists, any exists, count, aggregate
Funktionen oder irgendetwas anderes verwenden aufgelistet nicht oben in 1-5.
Schema:
People (id, name, age, address)
Courses (cid, name, department)
Grades (pid, cid, grade)
zufrieden ich die Abfrage aber ich habe nicht existiert (was ich nicht verwenden können). Die SQL unten zeigt nur Leute, die jede Klasse in der Tabelle Kurse nahmen:
select People.name from People
where not exists
(select Courses.cid from Courses
where not exists
(select grades.cid from grades
where grades.cid = courses.cid and grades.pid = people.id))
Gibt es Möglichkeit, dies durch in oder eine andere Methode nicht zu lösen, die ich bin gelassen? Ich habe stundenlang damit zu kämpfen gehabt. Wenn jemand mit diesem doofen Hindernis helfen kann, werde ich Ihre Antwort gerne auffrischen und Ihre Antwort auswählen.
Sie können also‘ t 'Join' oder Aggregatfunktionen verwenden?Vielleicht können Sie 'except' verwenden, um Schüler mit einer unvollständigen Liste zu identifizieren, und dann' NOT IN' dagegen verwenden. –
Wie würde ich herausfinden, wer nicht jeden Kurs in der Kurstabelle genommen hat? Probleme damit –