sind beide SQL Abfragen das gleiche (erste Musterlösung) zweite wäre meine Lösung gewesen.
CREATE VIEW Ansicht ( ARTNR, ARTBEZ, EINKAUFSPREIS, VERKAUFSPREIS) AS
SELECT *
FROM ARTIKEL
WHERE ARTIKEL.ARTNR IN
(SELECT ARTNR
FROM PROD_GRUPPE
WHERE GRUPPENNR IN (93,97))
-----------------
CREATE VIEW Ansicht (ARTNR, ARTBEZ, EINKAUFSPREIS, VERKAUFSPREIS) AS
SELECT ARTNR, ARTBEZ, EINKAUFSPREIS, VERKAUFSPREIS
FROM ARTIKEL, PROD_GRUPPE
WHERE ARTIKEL.ARTNR = PROD_GRUPPE. ARTNR
AND GRUPPENNR = 93 OR GRUPPENNR = 97
Danke euch
Hat jemand ein kleines Programm wo man diese SQL Abfrage ausprobieren kann ?
Comments
J L A
Contributions on this page: 1
View profileMit ein bisschen Aufwand kann man das bestimmt in [URL='https://sqlfiddle.com/']SQL Fiddle[/URL] ausprobieren.
Ich glaube, dass deine Lösung ein anderes Ergebnis bringen könnte, weil AND meistens stärker bindet, und somit die implizite Klammerung "WHERE (ARTIKEL.ARTNR = PROD_GRUPPE.ARTNR AND GRUPPENNR = 93) OR GRUPPENNR = 97" wäre. Von daher ist die "IN"-Abfrage in der Musterlösung etwas besser, weil man dann nicht so stark auf die Auswertungsreihenfolge der Ausdrücke achten muss. Ansonsten dürften der JOIN- und Subselect-Ansatz eigentlich die selben Ergebnisse ausgeben. Ganz spontan hätte ich auch eher die abgefragte Spaltennamen angegeben, anstatt einfach "*" zu benutzen.