Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да определим дали MySQL заявка е валидна?

Като начало, запетаята след select * не принадлежи.

Второ, създавате псевдоним на вашите таблици (table_2 t и table_1 a ), но тогава не използвате постоянно псевдонимите, така че може да имате проблеми по време на изпълнение. Също така от гледна точка на поддръжката, мисля, че повечето хора предпочитат да използват псевдоними, когато са декларирани, и никакви псевдоними в противен случай.

Трето, правите сравнение с cols от таблицата t във външния избор ('smith' in (t.column1, t.column2) ), когато това изглежда ненужно. Можете просто да го направите във външния избор. С други думи, можете да преместите тази терминална скоба преди AND ('smith'). ...

Що се отнася до това дали работи - нямам представа, тъй като не знам какво се опитвате да постигнете.

В комбинация това ще ви остави с :

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. Най-добрият начин да премахнете стойност от полето SET?

  2. Търсене в Mysql Regular Expression без повтарящи се знаци

  3. Много състояния на края на заявката в MySQL, всички връзки се използват за броени минути

  4. sql свързва две таблици

  5. Elastic Beanstalk не създава RDS параметри