SQL VIEW Frage

Dr Franke Ghostwriter
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 ?
 
Mit ein bisschen Aufwand kann man das bestimmt in SQL Fiddle 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.
 
Oben