我想对我的选择子查询应用条件检查。我怎样才能做到最好?
这是初始查询:
SELECT
table1.column1,
(SELECT min(table2.column1) FROM table2 WHERE table2.table1Id = table1.id) as subResult
FROM table1
WHERE table1.column2 = "something"
我想添加 WHERE 条件subResult = :parameter
。并且:parameter
是可选的,意思是如果:parameter
为空,则在结果中包含行。
WHERE table1.column2 = "something" AND (:parameter is null or subResult = :parameter)
但是我无法subResult
在 WHERE 条件中引用子查询的结果。
我可以将子查询复制/粘贴到 WHERE 子句中,但这似乎很草率且容易出错:
SELECT
table1.column1,
(SELECT min(table2.column1) FROM table2 WHERE table2.table1Id = table1.id) as subResult
FROM table1
WHERE table1.column2 = "something" AND (:parameter is null or (SELECT min(table2.column1) FROM table2 WHERE table2.table1Id = table1.id) = :parameter)