2014-03-28 90 views
-5

我有兩個表tbIndividual,tbWaitIndividual如果在查詢sql

tbIndividual有兩列I_ID,I_NAMEtbWaitIndividual有兩列I_ID and G_ID.

現在會是怎樣的查詢選擇從第一臺的記錄,從而使名與'AB'開始,如果兩個表具有相同I_ID值,那麼選擇這些記錄其中G_ID在這種情況下不等於特定值X

tbIndividual

I_ID I_NAME 
1  ABCD 
2  AB 
3  UIO 
4  ABFG 

tbWaitIndividuals

I_ID G_ID 
1 2 
1 3 
1 2 
1 4 
2 5 

說X = 2,那麼

這裏輸出中會

2 AB 
4 ABFG 
+3

顯示你已經試過..「希望」在這裏不鼓勵 – Hitesh

+2

你正在尋找一個JOIN,可能是LEFT JOIN,但你最好籤出SQL手冊,看看各種可能性。一旦你*有*查詢,*如果*你有麻煩,發佈並回來。 – LSerni

+0

這將是...你嘗試的東西,我們將幫助你解決。 – CodeBird

回答

0

嘗試此查詢,看看它是否工作

select A.* 
from tbIndividual A 
left join tbWaitIndividual B on A.I_ID = B.I_ID 
where I_NAME like 'AB%' and (G_ID <> X or G_ID IS NULL) 
+0

你得到它wrong.I希望在第一臺或者他們沒有相同I_ID這些記錄,如果他們有相同的I_ID然後G_ID應該是不同 – user3462609

+0

你的問題說:「如果兩個表具有相同的I_ID值,然後選擇那些在這種情況下G_ID不等於特定值的記錄,例如X。香港專業教育學院查詢以上相應書面,只選擇那些記錄I_ID是在這兩個表G_ID不等於X – Hitesh

+0

OHH..my接錯...其實我想先從AB所有那些有名字記錄,他們要麼不在第二個表中,如果他們在第二個表中,他們的G_ID不應該是X – user3462609

1
select a.* from tbIndividual a 
left join tbWaitIndividual b on a.I_ID = b.I_ID 
where a.I_NAME like 'AB%' and b.g_id <> X 

我從您的意見了解你正在尋找這個

select distinct a.* from tbIndividual a 
left join tbWaitIndividual b on a.I_ID = b.I_ID 
where a.I_NAME like 'AB%' and a.I_ID <> (select I_ID from tbWaitIndividual where g_id =X) 
+0

它是否具有兩個表的I_ID不同的記錄? – user3462609

+0

你錯了。我想要這些記錄在第一個表中,要麼他們沒有相同的I_ID,如果他們有相同的I_ID那麼G_ID應該是不同的 – user3462609

+0

幾乎不可能理解......他們在'tbWaitIndividual'沒有相應的記錄或者他們有不是'X'的記錄?然後它是'select tbIndividual。* from tbIndividual left join tbWaitIndividual using(I_ID)where I_NAME like'AB%'and(G_ID <> X or G_ID is NULL)' – keltar

0

只是做一個與兩個表的連接。這將不喜歡

select ti.I_ID,ti.I_NAME, 
twi.I_ID,twi.G_ID 
from tbIndividual ti 
join tbWaitIndividual twi 
on ti.I_ID = twi.I_ID 
where ti.name like 'AB%' 
and twi.G_ID != x