2015-10-06 48 views
0

在2個表的條件我有2個表如下:多WHERE在MySQL

表1

ID Name  Test 
A011 John  1 
A012 Lynda 1 
A013 Micheal 1 
A014 Jack  0 
A021 Joe  1 
A015 Paul  0 

表2

ID Done 
A011 1 
A012 1 

我想從選擇所有的行table1有一個ID其中3第一字母等於A01,並且test字段是1,並且ID不存在於表2中。

我嘗試此查詢:

SELECT a.* FROM table1 a LEFT JOIN table2 b ON a.ID = b.ID 
WHERE a.test = 1 AND b.ID IS NULL 

結果從爲2行與IDA013A021。我試圖用LEFT(ID,3)得到IDA01,但是,我無法達到我想要的。

我該如何過濾僅以A01開頭的記錄?

+2

Welll ...你試過了什麼嗎? 「內部連接」可能有所幫助。 – bcesars

+2

到目前爲止您嘗試過什麼?請編輯您的問題,添加您現在的查詢。 –

+0

@GustavoStraube,我編輯了我的問題,請看看。謝謝 –

回答

0

嘗試此,它會給你所需的結果

SELECT T1。* FROM表1 T1 LEFT JOIN table2的T2 ON t1.userid = t2.userid WHERE LEFT(t1.userid,3)LIKE「%A01 %'AND t1.userid NOT IN(SELECT userid from table2)

0
SELECT * FROM table1 
WHERE test = 1 
AND ID LIKE "AO1%" 
AND ID NOT IN (SELECT ID from table2)