2017-12-24 4 views

Antwort

1

x ist von der innersten Abfrage gelöst. Es ist immer besser, Spaltennamen zu qualifizieren, so schreiben Sie diese Abfrage als:

SELECT A.x 
FROM A 
WHERE A.x IN (SELECT B.x 
       FROM B 
       WHERE B.x < 10 
      ); 

Dies hat den Vorteil, dass, wenn B.x nicht vorhanden ist, werden Sie eine Fehlermeldung erhalten. Andernfalls bezieht sich IN (SELECT x . . . auf A.x (aber nur, wenn B.x nicht existiert).

+0

Wenn Spaltennamen nicht qualifiziert sind, werden sie durch die innerste Abfrage aufgelöst? –

+0

http://www.sqlfiddle.com/#!6/9bdaa/2 re Gordons letzten Absatz –

Verwandte Themen