2012-12-04 104 views
0

有誰知道如何反轉下面的mysql查詢?如何反轉mysql查詢?

select * 
from test_results 
where TESTERID='3' 
    and TESTID IN (select TESTID 
       from tests 
       where TESTSREQUESTED > '0' 
        AND TESTSREQUESTED > TESTSREQUESTEDTAKEN); 

謝謝!

+0

你是什麼意思爲 「反」? –

+0

你是什麼意思的反查詢。請稍微解釋一下。 –

+0

是否有'testerid'和'TESTSQUQUESTED'數字列?如果是,你不應該將它們與字符文字進行比較。請使用「真實」數字:'testerid = 3','TESTSQUQUESTED> 0' –

回答

-1

試試這個

select * from test_results where TESTERID!='3' and TESTID NOT IN (select TESTID from tests where TESTSREQUESTED>'0' AND TESTSREQUESTED>TESTSREQUESTEDTAKEN) 
+0

刷新時間[摩根法則](http://en.wikipedia.org/wiki/De_Morgan%27s_laws)(或重新閱讀問題) –

+0

已經嘗試過但沒有工作。謝謝 – user1774442

2
select * from test_results where not (TESTERID='3' and TESTID IN (select TESTID from tests where TESTSREQUESTED>'0' AND TESTSREQUESTED>TESTSREQUESTEDTAKEN)) 
+1

仍然沒有好處。它仍然返回ID爲3的測試人員。@melpomene – user1774442

+0

這是怎麼回事?你的原始查詢不會返回帶有id的所有*行。我的查詢返回其餘的(因爲它是相反的)。 – melpomene

0

試試這個::

select 
* 
from test_results tr 
INNER JOIN tests on (tests.TESTID=tr.TESTID) 

where tr.TESTERID!='3' 
OR (tests.TESTERID!='3' AND tests.TESTSREQUESTED<'0' AND TESTSREQUESTED<TESTSREQUESTEDTAKEN) 
+0

你好。 where子句中的testerid不明確。謝謝。 – user1774442

+0

更新了我的查詢,請現在檢查,我已經使用了join,這比幾乎在那裏的子句 –

+0

中的子查詢快速和高效。這部分仍然不起作用。或者(tests.TESTSQUESTEST <'0'和TESTSQUESTED user1774442