2012-05-02 85 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中的每個記錄有多於一個記錄,則必須使用不同的表格。

相關問題