sql >> Databasteknik >  >> RDS >> Mysql

MySQL ERROR 1349 Vad saknar jag?

Du missar det faktum att vyer i MySQL inte tillåter undersökningar i from klausul. De är tillåtna i select och where och having klausuler dock.

dokumentationen är ganska tydligt:

I ditt fall kan du förmodligen skriva om from sats som en korrelerad underfråga i select klausul. Du kan också använda flera lager av vyer för att göra vad du vill.

EDIT:

En SELECT-sats i SQL har följande satser:SELECT , FROM , WHERE , GROUP BY , HAVING , och ORDER BY (enligt standarden). Dessutom lägger MySQL till saker som LIMIT och INTO OUTFILE . Du kan se detta på det sätt som MySQL beskriver SELECT klausul i dokumentationen . Du kan också se detta i dokumentationen för nästan vilken databas som helst.

Operationer som join är en del av FROM sats (på samma sätt WITH ROLLUP är en del av GROUP BY och DESC är en del av ORDER BY ). Dessa kan verka som svåra syntaktiska konventioner, men det blir viktigt när det finns en begränsning som den ovan.

En anledning till förvirringen är kanske en indragsstil som går så här:

select . . .
from t1
inner join t2
     on . . .

Där join-satserna raderas under select . Detta är missvisande. Jag skulle skriva detta som:

select 
from t1 join
     t2
     on . . .

Endast select satser radas upp under select.



  1. CodeIgniter - Gruppera efter med beställning genom att inte fungera som förväntat

  2. Kolumn hittades inte:1054 Okänd kolumn laravel

  3. Hur massuppdatera mysql-data med en fråga?

  4. SQL Server SELECT i befintlig tabell