2016-08-04 44 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和以及失败....并且你想显示那个失败的人。这是不可能的...如果你想达到目的,你会要求相应地注册你的牌桌 –