ich drei Beziehungen haben zu schreiben (für das Problem vereinfacht)Effizientere Möglichkeit, diese SQL-Abfrage
SUPPLIER(SNO)
PART(PNO, PNAME)
SHIPMENT(SNO, PNO)
wo SNO
und PNO
Fremdschlüssel sind die Primärschlüssel von SUPPLIER
und PART
passend ich schrieb Abfrage, um SNO
aller Lieferanten zu finden, die zu P2 und P4 versenden. Die Abfrage funktioniert, scheint aber ineffizient zu sein. Ich ausgeschlossen all PNO
, die nicht P2 oder P4
SELECT SUPPLIER.SNO, PNO
FROM SUPPLIER
JOIN SHIPMENT ON SUPPLIER.SNO = SHIPMENT.SNO
WHERE PNO <> 'P1' AND PNO <> 'P3' AND PNO <> 'P5' AND PNO <> 'P6'
Es hat eine bessere Art und Weise, um diese Abfrage zu schreiben. Ich benutze mssql-server
EDIT: Ich lerne gerade SQL und war nicht bewusst, der IN-Operator. Danke für die Hilfe
Warum die anderen 'pno's ausschließen und nicht nur' p2' und 'p4' einschließen? – Mureinik
Bearbeiten Sie Ihre Frage und geben Sie Beispieldaten an. Erklären Sie auch, warum Sie nicht nur PN0 IN ('P2', 'P4') 'verwenden. –
@Mureinik Ich lerne gerade SQL und war nicht bewusst, die IN-Operator – kemotoe