2012-05-02 138 views

回答

3

也许是这样的:

SELECT 
    column1 
FROM 
    table1 
WHERE 
    ppp=$parameter 
    AND EXISTS 
     (
      SELECT 
       NULL 
      FROM 
       table2 
      WHERE 
       table1.ppp=table2.parameter 
       AND qweqwe<$parameter2 
    ) 
+0

是的。它可以自己尝试。你可以有任何'SELECT'tut'','SELECT 1','SELECT NULL','SELECT'SOMEOTHER''。这只是写一个'EXISTS'的风格。如果你正在使用linq-to-sql,它实际上将'contains'函数转换为'SELECT NULL'的'EXISTS' – Arion

0

究竟是你想怎么办? 第一后的事情,应该是合乎逻辑的,例如

... AND 650<(SELECT qweqwe FROM table2 WHERE parameter=$parameter2) 
2
SELECT column1 FROM table1 WHERE parameter=$parameter 
AND exists 
(SELECT 1 FROM table2 WHERE table2.parameter=table1.parameter AND table2.qweqwe=$parameter2) 
+1

这不起作用。如果你不修正这个错字'exist' ='EXISTS' – Arion

1

这取决于你的数据。 您可以使用如先前答案中所示的exists或使用join。

SELECT column1 FROM table1 
join table2 on table1.ppp=table2.parameter and table2.qweqwe=$parameter2 
where table1.ppp=$parameter 

在大多数情况下,加入会比现在快得多。但事实证明,如果表格1中的每个记录有多于一个记录,则必须使用不同的表格。

相关问题