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

Kolom tidak dikenal {0} dalam klausa on

Saya kira Puzzles tidak memiliki kolom PuzzleID . Apakah kolom ini disebut hanya ID di meja itu? Atau Puzzle_ID ?

Anda harus menjalankan SHOW CREATE TABLE Puzzles untuk melihat definisi tabel saat ini.

Terkadang kutipan yang hilang bisa menjadi penyebabnya:

... ON `Puzzles.PuzzleID` ...

Di atas akan mencari kolom yang secara harfiah bernama "Puzzles.PuzzleID ," yaitu, nama kolom yang panjangnya 16 karakter dengan titik di tengahnya.

@Bell pantas mendapatkan hadiah karena memperhatikan bahwa Anda mencampur gabungan gaya koma dan gabungan gaya SQL-92. Saya tidak menyadarinya!

Anda tidak boleh menggunakan keduanya dalam kueri yang sama, karena prioritas operasi gabungan mungkin menyebabkan kebingungan.

JOIN kata kunci memiliki prioritas yang lebih tinggi. Menyederhanakan kueri Anda sehingga kami dapat melihat ekspresi tabel, itu akan dievaluasi sebagai berikut:

SELECT . . . 
FROM (Puzzles JOIN PuzzleCategories),
(Clients JOIN Publications JOIN PublicationIssues JOIN PuzzleUsages)

Masalahnya adalah bergabung dengan PuzzleUsages perlu dibandingkan dengan Puzzles.PuzzleID kolom, tetapi karena masalah prioritas, tidak bisa. Kolom bukan bagian dari operan JOIN terakhir .

Anda dapat menggunakan tanda kurung untuk mengatasi kesalahan, secara eksplisit mengesampingkan prioritas ekspresi tabel (sama seperti Anda akan menggunakan tanda kurung dalam ekspresi aritmatika):

SELECT . . . 
FROM Puzzles JOIN (PuzzleCategories, Clients)
JOIN Publications JOIN PublicationIssues JOIN PuzzleUsages

Atau Anda bisa menggunakan SQL-92 JOIN sintaks secara konsisten. Saya setuju dengan @Bell bahwa ini lebih jelas.

SELECT . . . 
FROM Puzzles JOIN PuzzleCategories JOIN Clients
JOIN Publications JOIN PublicationIssues JOIN PuzzleUsages


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Memotong Tabel di MySQL

  2. Kesalahan fatal:Kesalahan Tidak Tertangkap:Panggilan ke fungsi yang tidak ditentukan mysql_pconnect()

  3. Membuat posting terkait atau serupa menggunakan PHP &MySQL

  4. password_hash, password_verify, MySQL salah paham?

  5. Django mysql memaksa penggunaan indeks