Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cột sử dụng SQL từ chọn con trong mệnh đề where

Bạn không thể sử dụng bí danh cột trong WHERE mệnh đề.

Vì vậy, bạn có thể bọc truy vấn của mình trong một lựa chọn bên ngoài và áp dụng điều kiện của bạn ở đó

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

hoặc bạn có thể giới thiệu điều kiện đó trong HAVING mệnh đề thay thế

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

Tuy nhiên, một cách tiếp cận khác là sử dụng CROSS JOIN và áp dụng điều kiện của bạn trong WHERE mệnh đề

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

Đây là SQLFiddle demo cho tất cả các truy vấn được đề cập ở trên.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truy vấn sắp xếp theo ba ký tự cuối cùng của một cột

  2. Django Nhiều cơ sở dữ liệu Dự phòng cho Master nếu Slave bị lỗi

  3. Làm cách nào để đăng ký các hàm SQL không độc lập theo cách thủ công trong ứng dụng Spring Boot?

  4. Trả về 0 nếu trường rỗng trong MySQL

  5. Kết nối thành công Máy khách với máy chủ MySQL