【发布时间】:2013-05-23 00:02:06
【问题描述】:
我有一个表 T1 与列 C1, C2, C3, C4 和 T2 与列 C1 和 D1。我想选择T1 中的所有行,其中T2 中的适当行的D1 大于C2、C3 和C4。
我试过这样的
SELECT C1,C2,C3,C4 FROM T1
WHERE (SELECT D1 FROM T2 WHERE C1=T1.C1)>(C2,C3,C4)
还有这个
SELECT C1,C2,C3,C4 FROM T1
WHERE (SELECT D1 FROM T2 WHERE C1=T1.C1)>MAX(C2,C3,C4)
但我得到的是语法错误。我可以这样写 WHERE 子句:
WHERE (SELECT D1 FROM T2 WHERE C1=T1.C1)> C2
AND (SELECT D1 FROM T2 WHERE C1=T1.C1)> C3
AND (SELECT D1 FROM T2 WHERE C1=T1.C1)> C4
但是,没有必要运行相同的子查询 3 次,因为它总是返回相同的结果。
有人可以帮忙吗? :)
【问题讨论】: