Mit dem Verständnis, das ist eine Prüfung der Praxis, und dass Sie keinen Zugriff auf die Tabellen/Werte ....
Sie sollten sich wirklich zeigen, was Sie versucht haben .. Aber seit du bist neu ...
Frage 1: Return employeeID, Nachname und Gehalt aller Mitarbeiter, die ein Gehalt höher als der Preis des teuersten Produkts (wie sie vermieden haben mit dem Wort max da ...)
Also verwendet dies eine Unterabfrage, um den maximalen Preis von Produkten zu erhalten und vergleicht einfach das Gehalt damit.
SELECT Employee_ID, Last_Name, Salary
FROM employees
WHERE salary > (Select max(price) from Products);
Frage 2:
generieren zwei Sätze eine für PRODUCT_ID von 1 eine für PRODUCT_ID von 3 und stellen Sie sicher, die mit 1 nicht in der Gruppe mit 3
und diese nutzt eine korrelierte Unterabfrage (beachten Sie, wie der PUR-Alias in der Unterabfrage ist? Deshalb ist es korreliert)
So die erste Abfrage erhält alle Kunden Produkt 1 zu kaufen. Die zweite Abfrage findet alle Kunden Produkt 3. kaufen und da wir nur diese wollen Kunden, die 1 nicht 3 gekauft haben, Wir korrelieren die Abfragen mit nicht existiert und wir haben unsere Antwort.
Existiert - normalerweise am schnellsten, da die Unterabfrage vorzeitig beendet werden kann, sobald ein einzelner Datensatz für einen Kunden gefunden wurde.
SELECT Distinct PUR.Customer_ID
FROM purchases PUR
WHERE PRODUCT_ID = 1
and not exists (SELECT 1
FROM Purchases PUR2
WHERE Product_ID = 3
and PUR.Customer_ID = PUR2.Customer_I
Es gibt 2-3 Möglichkeiten, dies zu tun. Ich finde das oben genannte in den meisten Fällen am effizientesten. Sie können es aber auch tun, indem Sie ... sich selbst verbinden; oder unter Verwendung eines nicht in der Aussage
Selbst LEFT (funktioniert kommen groß, wenn Sie Daten aus mehreren Tabellen benötigen
Wir selbst auf Einkäufe beitreten, aber jede Tabelle Beispiel Filter für ein bestimmtes Produkt zu sein.wir verwenden LEFT JOIN, wie wir alle Datensätze mit Produkt-ID 1 und wo eine Übereinstimmung in p2 gefunden wird wollen, müssen wir die Datensätze ausschließen möchten also, wenn die CUSTOMER_ID null ist, das heißt, sie
SELECT Distinct P1.customer_ID
FROM Purchases P1
LEFT JOIN Purchase P2
on P1.customer_Id = P2.customer_ID
and P2.Product_ID = 3
WHERE P1.Product_ID = 1
and P2.customer_ID is null
kein Produkt 3 Käufe haben nicht in (in der Regel am langsamsten, aber funktioniert gut, wenn Unterabfrage für eine sehr kleine Datenmengen ist)
SELECT Distinct PUR.Customer_ID
FROM purchases PUR
WHERE PRODUCT_ID = 1
and customer_ID not in (SELECT Customer_Id
FROM Purchases
WHERE Product_ID = 3)
Beachten Sie, dass keiner der ersten beiden Antworten verwendet eine Verknüpfung; obwohl eine korrelierte Unterabfrage nah ist.
Hört auf, andere zu bitten, euch beim Schummeln zu helfen und einfach selbst zu betrügen und ein paar Tutorials zu Joins zu lesen. – dfundako
Sie sollten wirklich versuchen, dies selbst zu beantworten, und wenn Sie stecken bleiben, geben Sie Ihre Arbeit an und fragen Sie nach einem bestimmten Problem. Diese Seite ist kein Ort, an dem Sie Ihre Hausaufgaben erledigen können. – gmiley
Was haben Sie bisher gemacht? Dies ist kein Betrüger auf der Schulseite, es ist eine Hilfe Leute, die versuchen, sich selbst zu helfen. – Forklift