Bagaimana untuk menyelesaikan ralat "Not unique table/alias: 'user'" dalam SQL?
Kod SQL yang anda berikan memberikan ralat 1066 kerana jadual 'pengguna' dirujuk dua kali tanpa alias. Dalam SQL, apabila menyertai jadual, adalah penting untuk memberikan alias unik kepada jadual jika ia dirujuk beberapa kali.
Struktur jadual anda menunjukkan bahawa jadual 'pengguna' mengandungi lajur seperti 'nama' dan 'id'. Anda telah menyertai jadual 'artikel' dengan jadual 'pengguna' untuk mendapatkan maklumat pengguna berdasarkan 'id_penulis'. Walau bagaimanapun, anda juga telah meninggalkan-menyertai jadual 'artikel' dengan jadual 'pengguna' sekali lagi, tetapi kali ini berdasarkan 'modified_by'. Tanpa memberikan alias untuk contoh kedua jadual 'pengguna', pertanyaan tidak boleh membezakan antara dua kegunaan 'pengguna'.
Untuk menyelesaikan isu ini, anda perlu memberikan contoh kedua 'pengguna' ' jadualkan alias. Ini akan membezakan antara dua kejadian dan membolehkan SQL mengenal pasti dengan betul lajur yang anda ingin dapatkan.
Berikut ialah kod yang diubah suai:
SELECT article.*, section.title, category.title, user.name, u2.name FROM article INNER JOIN section ON article.section_id = section.id INNER JOIN category ON article.category_id = category.id INNER JOIN user ON article.author_id = user.id LEFT JOIN user u2 ON article.modified_by = u2.id WHERE article.id = '1'
Dalam kod yang diubah suai ini, kami telah memberikan contoh kedua jadual 'pengguna' alias 'u2'. Ini membolehkan pertanyaan membezakan antara dua kejadian jadual 'pengguna' dan mendapatkan semula data yang dikehendaki dengan betul.
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat SQL 'Not unique table/alias: 'user''?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!