2016-08-04 70 views
0

- ecare加入從兩個表中獲取數據

name   h_id 

Sam   1 

Deb   1 

Kim   1 

- pweb

h_id   sent 
1    1 
1    0 
1    0 

CheckOUTPUTSQL小提琴

我使用以下查詢pweb表從ecare的讀取狀態數據,其中sent is 0

SELECT distinct e.name, e.h_id 
from ecare e 
INNER JOIN pweb p 
ON e.h_id = p.h_id AND p.sent = 0 

但是,我得到所有三個記錄那些提供ecare表,不僅發送= 0

注:我試過同一查詢INNER JOIN過,但越來越所有three records提供ecare表中特定h_id

其實,在我的申請,我管理狀態記錄synced服務器或not - 如果同步然後我顯示其他)在pweb

但現在,我的要求,在這裏我只需要節目記錄那些被not uploaded服務器然而,我的意思是那些sent狀態是pweb ....

+0

驗證你肯定你所得到的所有3條記錄?你不應該。 –

+0

@TimBiegeleisen是的,我得到所有3條記錄 – Oreo

+0

嘗試使用** INNER JOIN **而不是** LEFT JOIN ** – Sadikhasan

回答

0
String sql = "SELECT e.name, e.h_id from ecare e INNER JOIN pweb p ON e.h_id=p.h_id WHERE p.sent = '0' "; 

頂替藏到h_id

+0

這不是解決方案...我只是做了錯字錯誤:( – Oreo

0

http://sqlfiddle.com/#!9/ba4c7a/1

SELECT e.name, e.h_id 
FROM ecare e 
INNER JOIN pweb p 
ON e.h_id=p.h_id AND p.sent = 0 

的方式查詢的變型的作品,以及

http://sqlfiddle.com/#!9/ba4c7a/2

SELECT e.name, e.h_id 
FRM ecare e 
INNER JOIN pweb p 
ON e.h_id=p.h_id 
WHERE p.sent = 0 
+0

尚未完成...獲取所有三個記錄 – Oreo

+0

sqlfiddle please?或者你的代碼的完整片段,以及你如何得到你的3行的一些證明根據sqlfiddle,只有2行 – Alex

+0

probaly你查詢錯誤的數據庫,所以提供證據證明你在數據庫中有相同的數據:'SELECT * FROM pweb'什麼是輸出?在這裏發佈 – Alex

0

沒有與您的查詢沒有問題。這很好。
問題在於你的數據。您在pweb表中添加了3條記錄,與h_i相同,因此您的查詢顯然會獲取所有3條記錄。

可以在this fiddle

+0

是啊我同意,但無論如何,我需要做到這一點,請檢查這一個:http://sqlfiddle.com/#!9/348aa/2 – Oreo

+0

你不能有錯誤的數據結構。對不起 –

+0

它就像一個preson有測試結果pas和以及失敗....並且你想顯示那個失敗的人。這是不可能的...如果你想達到目的,你會要求相應地註冊你的牌桌 –