Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak ustalić, czy zapytanie MySQL jest prawidłowe?

Na początek przecinek po select * nie należy.

Po drugie, aliasujesz swoje tabele (table_2 t i table_1 a ), ale wtedy nie używasz konsekwentnie aliasów, więc możesz mieć problemy w czasie wykonywania. Również z perspektywy konserwacji, myślę, że większość ludzi woli używać aliasów, gdy są zadeklarowane, i nie ma aliasów w inny sposób.

Po trzecie, dokonujesz porównania z kolumnami z tabeli t w zewnętrznym zaznaczeniu ('smith' in (t.column1, t.column2) ), gdy wydaje się to niepotrzebne. Możesz to po prostu zrobić w zewnętrznym zaznaczeniu. Innymi słowy, możesz przenieść nawias terminala przed AND ('smith' ...

Co do tego, czy to działa – nie mam pojęcia, ponieważ nie wiem, co próbujesz osiągnąć.

W połączeniu dałoby to :

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. Sortowanie z uwzględnieniem wielkości liter w MySQL

  2. Nie można uzyskać dostępu do Amazon RDS za pomocą Eclipse

  3. Projekt bazy danych dla bardzo dużej ilości danych

  4. Zapytanie Doktryna i LIKE

  5. Używasz warstwy bazy danych Django poza Django?