2012-05-30 65 views
1

我正在開發一個興趣愛好程序,並且認爲有更好的方法可以做到這一點。我所擁有的是這個查詢:我如何結合這2個MySQL查詢?

SELECT username 
FROM users 

返回所有可能的匹配項。 我再運行此查詢:

SELECT username 
FROM alreadyDone 
WHERE Name='test' 

它得到我說,我們已經完成了比賽。然後我將這些全部添加到Java中的Array列表中,然後通過集合接口刪除相同的列表。

我認爲有一種方法可以通過MySQL來完成所有這些工作,並且可以使用各種連接等等,但我無法弄清楚哪條路要走。有人能指引我朝着正確的方向嗎?

回答

2

如果我理解正確,您正試圖找到那些不在'test'的alreadyDone表中的用戶。

SELECT u.username 
    FROM users u 
    WHERE NOT EXISTS(SELECT 1 
         FROM alreadyDone ad 
         WHERE ad.username = u.username 
          AND Name = 'test'); 

或者,你也可以這樣寫:

SELECT u.username 
    FROM users u 
     LEFT JOIN alreadyDone ad 
      ON u.username = ad.username 
       AND Name = 'test' 
    WHERE ad.username IS NULL; 
+0

是的,你是正確的!謝謝回覆! 我只是想弄清楚爲什麼這一切都有效! – David