Anda tidak dapat menggunakan alias kolom di WHERE
klausa.
Jadi, Anda dapat membungkus kueri Anda dengan pilihan luar dan menerapkan kondisi Anda di sana
SELECT *
FROM
(
SELECT a, b, c,
(SELECT d FROM B LIMIT 0,1) d
FROM A
) q
WHERE d >= 10
atau Anda dapat memperkenalkan kondisi itu di HAVING
klausa sebagai gantinya
SELECT a, b, c,
(SELECT d FROM B LIMIT 0,1) d
FROM A
HAVING d >= 10
Namun pendekatan lain adalah dengan menggunakan CROSS JOIN
dan terapkan kondisi Anda di WHERE
klausa
SELECT a, b, c, d
FROM A CROSS JOIN
(
SELECT d FROM B LIMIT 0,1
) q
WHERE d >= 10
Ini SQLFiddle demo untuk semua pertanyaan yang disebutkan di atas.