Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL ERROR 1349 Apa yang saya lewatkan?

Anda melewatkan fakta bahwa tampilan di MySQL tidak mengizinkan subkueri di from ayat. Mereka diizinkan di select dan where dan having klausa.

Dokumentasi cukup jelas:

Dalam kasus Anda, Anda mungkin dapat menulis ulang from klausa sebagai subquery yang berkorelasi dalam select ayat. Anda juga dapat menggunakan beberapa lapisan tampilan untuk melakukan apa yang Anda inginkan.

EDIT:

Pernyataan SELECT dalam SQL memiliki klausa berikut:SELECT , FROM , WHERE , GROUP BY , HAVING , dan ORDER BY (sesuai standar). Selain itu, MySQL menambahkan hal-hal seperti LIMIT , dan INTO OUTFILE . Anda dapat melihat ini dengan cara MySQL mendeskripsikan SELECT klausa dalam dokumentasi . Anda juga dapat melihat ini di dokumentasi untuk hampir semua database.

Operasi seperti join adalah bagian dari FROM klausa (sama dengan WITH ROLLUP adalah bagian dari GROUP BY dan DESC adalah bagian dari ORDER BY ). Ini mungkin tampak seperti konvensi sintaksis misterius, tetapi menjadi penting ketika ada batasan seperti di atas.

Mungkin salah satu alasan kebingungan ini adalah gaya lekukan yang berbunyi seperti:

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

Di mana pernyataan bergabung berbaris di bawah select . Ini menyesatkan. Saya akan menulis ini sebagai:

select 
from t1 join
     t2
     on . . .

Hanya select klausa berbaris di bawah select.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Laravel - Penyisipan massal pada kunci duplikat memperbarui kumpulan data besar

  2. Bagaimana saya bisa membangun kembali indeks dan memperbarui statistik di MySQL innoDB?

  3. Laravel | Validasi unik di mana klausa

  4. Bagaimana saya bisa mengatur mesin penyimpanan default yang digunakan oleh MySQL?

  5. Bagaimana cara menyimpan detail oauth Twitter di database mysql?