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

Използване на SQL колона от подизбор в клауза where

Не можете да използвате псевдоним на колона в WHERE клауза.

Така че или обвивате заявката си във външен избор и прилагате условието си там

SELECT * 
  FROM
(
  SELECT a, b, c,
    (SELECT d FROM B LIMIT 0,1) d
  FROM A
) q
 WHERE d >= 10

или можете да въведете това условие в HAVING вместо това клауза

SELECT a, b, c,
    (SELECT d FROM B LIMIT 0,1) d
  FROM A
HAVING d >= 10

Друг подход е да използвате CROSS JOIN и приложете вашето условие в WHERE клауза

SELECT a, b, c, d
  FROM A CROSS JOIN 
(
  SELECT d FROM B LIMIT 0,1
) q
 WHERE d >= 10

Ето SQLPiddle демонстрация за всички горепосочени заявки.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Работа с MySQL TIMESTAMP колони в SQL Server

  2. Как да решите MySQL innodb Изчакване за заключване на метаданни на таблицата на TRUNCATE TABLE?

  3. pdo вмъкване на изображение в базата данни директно - винаги вмъкване на BLOB - 0B

  4. MySQLSyntaxErrorException близо до ? когато се опитвате да изпълните PreparedStatement

  5. Как мога да активирам разширението MySQLi в PHP 7?