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

masukkan mysql jika tidak ada tanpa kunci unik

Kueri berhasil (jika tidak mysql_query() tidak akan mengembalikan true ) namun tidak menyisipkan baris apa pun. Satu-satunya penjelasan untuk itu adalah bahwa SELECT bagian menghasilkan himpunan kosong. Itu karena LEFT JOIN mengembalikan baris yang ada di t1 tapi tidak di t2 , tetapi pemilihan dilakukan pada NULL baris dalam t1 .

Ini akan berhasil:

INSERT teamshalf
(`yearID` , `lgID` , `teamID` , `Half` , 
`divID` , `DivWin` , `Rank` , `G` , `W` , `L`)
 SELECT DISTINCT t1.`yearID` , t1.`lgID` , t1.`teamID` ,
 t1.`Half` , t1.`divID` , t1.`DivWin` , t1.`Rank` , t1.`G` , t1.`W` , t1.`L` 
 FROM `teamshalf_TEMP` t1 LEFT JOIN `teamshalf` t2 ON t1.`yearID` = t2.`yearID`
 AND t1.`lgID` = t2.`lgID` AND t1.`teamID` = t2.`teamID`
 AND t1.`Half` = t2.`Half` AND t1.`divID` = t2.`divID`
 AND t1.`DivWin` = t2.`DivWin` AND t1.`Rank` = t2.`Rank`
 AND t1.`G` = t2.`G` AND t1.`W` = t2.`W` AND t1.`L` = t2.`L`
 WHERE t2.`yearID` IS NULL

Perhatikan juga bahwa mysql_query() sudah ditinggalkan. Dan Anda harus mendeklarasikan kolom yang harus berisi data sebagai NOT NULL , jadi NULL tidak akan diterima. Dan kueri Anda akan lambat, karena Anda tidak menggunakan indeks.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Azure App Service ImportError:libmysqlclient.so.18:tidak dapat membuka file objek bersama:Tidak ada file atau direktori seperti itu

  2. Paginasi di nodejs dengan mysql

  3. Peringatan:mysql_fetch_array():argumen yang diberikan bukan sumber hasil MySQL yang valid

  4. MySQL - Max() mengembalikan hasil yang salah

  5. Akses ditolak untuk root pengguna - mysql di MAC OS