加入以从两个表

时间:2016-08-04 12:13:24

标签: android mysql sqlite join android-sqlite

- ecare

name          h_id

Sam            1  

Deb            1

Kim            1

- pweb

h_id          sent
 1               1
 1               0
 1               0

SQL小提琴

中的Check OUTPUT

我正在使用查询 ecare 中获取 pweb 表格中的数据,其中仅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 表中的所有三个记录可用,而不仅仅是 sent = 0

的那些记录

注意:我也尝试使用 INNER JOIN 进行相同的查询,但获取所有three records可在 ecare 表格中找到该特定 h_id

实际上,在我的应用程序中,我正在管理记录的状态synced到服务器或not - 如果同步那么我正在显示{em> 1 else 0 pweb

但是现在,我得到了这个要求,我只需要显示记录那些not uploaded服务器,我的意思是那些{{1}在pweb ....中状态为 0

3 个答案:

答案 0 :(得分: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' ";

将hid替换为h_id

答案 1 :(得分: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

答案 2 :(得分:0)

您的查询没有问题。它完全没问题。
问题在于您的数据。您在pweb表中添加了3条记录,其中包含相同的h_i " 1" ,因此您的查询显然会获取所有3条记录。

您可以在this fiddle

中进行验证