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

Bagaimana cara menentukan apakah kueri MySQL valid?

Untuk memulainya, koma setelah select * bukan milik.

Kedua, Anda alias tabel Anda (table_2 t dan table_1 a ), tetapi kemudian Anda tidak menggunakan alias secara konsisten, sehingga Anda mungkin mengalami masalah saat dijalankan. Juga dari perspektif pemeliharaan, saya pikir kebanyakan orang lebih suka menggunakan alias saat dideklarasikan, dan sebaliknya tidak ada alias.

Ketiga, Anda melakukan perbandingan terhadap cols dari tabel t di outer select ('smith' in (t.column1, t.column2) ), ketika itu tampaknya tidak perlu. Anda bisa melakukannya di pilihan luar. Dengan kata lain, Anda dapat memindahkan induk terminal tersebut ke sebelum AND ('smith' ...

Mengenai apakah itu berhasil -- saya tidak tahu, karena saya tidak tahu apa yang ingin Anda capai.

Jika digabungkan, Anda akan mendapatkan :

SELECT t.*
FROM TABLE_2 t
WHERE EXISTS (SELECT IF(a.column1 = 'smith', a.column2, a.column1)       
              FROM TABLE_1 a
              WHERE 'smith' IN (a.column1, a.column2)
              AND a.status = 1)
AND ( 'smith' IN (t.column1, t.column2)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana memilih dari nama tabel dinamis

  2. PILIH beberapa baris WHERE cocok dengan dua kondisi

  3. Transaksi luar dalam kasus penggunaan transaksi bersarang tidak melihat pembaruan tetap ada di database (JPA, MySQL, Spring Framework, dan Hibernate)

  4. Memesan hasil MySQL yang ditetapkan oleh nilai MAX() dari tabel lain

  5. Hubungan 'banyak ke dua'