2013-08-28 143 views
0

我知道形成這個查詢是微不足道的,但我無法精確查詢。根據我目前閱讀的內容,解決方案可能包括連接兩個表格。這裏的問題是:根據另一個表的列值從表中選擇一條記錄

TABLE_ONE {S_NO, DK_NO, FRM , DATE} 

TABLE_TWO {S_NO, DK_NO , TO} 

我想根據檢查到TABLE_TWO場或迄今TABLE_ONE

不成功的試驗FRM領域的DK_NO和值的輸入值從TABLE_ONE選擇一個記錄:

1)

$sql = "select * from TABLE_ONE where DK_NO like '%".$dkno."%' and (FRM='".$department."' or (TABLE_TWO.DK_NO like '%".$dakno."%' and TABLE_TWO.TO='".$department."'))"; 

2)

$sql = "select * from TABLE_ONE where DK_NO like '%".$dkno."%' and (FRM='".$department."' or TABLE_TWO.TO='".$department."')"; 
+2

搜索連接和他們做什麼 – Mihai

+0

是什麼2和表之間的關係? S_NO在兩者中都是相同的值嗎? – Sean

+0

TABLE_TWO的否DK_NO是外鍵 –

回答

1

推薦閱讀:JOIN

使用內部聯接:

"select t1.* 
from table_one t1 inner join table_two t2 on t1.dk_no = t2.dk_no 
where (t1.frm = '". $department. "' or t2.to = '".$department. "') 
    and t1.dk_no like '%" . $dkno . "%'"; 
+0

@AkashGupta,不客氣。我根據您在問題中的評論更新了我的答案,以反映適當的連接列。 – vee

1

你需要加入你的表。試着這麼做 -

SELECT 
    T1.* 
FROM 
    TABLE_ONE T1 
JOIN 
    TABLE_TWO T2 
ON 
    T1.DK_NO = T2.DK_NO 
WHERE 
    T1.DK_NO like '%".$dkno."%' 
AND 
    (T1.FRM='".$department."' OR TABLE_TWO.TO='".$department."') 
相關問題