Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从一个与另一个表没有/没有关系的表中查询行_Android_Sql_Sqlite_Join - Fatal编程技术网

Android 从一个与另一个表没有/没有关系的表中查询行

Android 从一个与另一个表没有/没有关系的表中查询行,android,sql,sqlite,join,Android,Sql,Sqlite,Join,我有三张桌子 1.设备(id、deviceno、devicename) 2.程序(id、程序名) 3.可编程设备(id、programid、deviceid) 现在我两者都需要 1.与给定程序ID有关系的所有设备 2.与给定程序ID没有关系的所有设备 我尝试了以下方法 SELECT d.id, d.deviceno, d.devicename FROM devices d LEFT JOIN programdevices pd ON pd.program = 3 and pd.device =

我有三张桌子
1.设备(id、deviceno、devicename)
2.程序(id、程序名)
3.可编程设备(id、programid、deviceid)

现在我两者都需要
1.与给定程序ID有关系的所有设备
2.与给定程序ID没有关系的所有设备

我尝试了以下方法

SELECT d.id, d.deviceno, d.devicename FROM devices d
LEFT JOIN programdevices pd ON pd.program = 3 and pd.device = d.id
WHERE pd.device is null / is not null
但我总是得到一个空的结果。 感谢大家为我指出了正确的方向

试试这个:

SELECT d.id, d.deviceno, d.devicename, case when pd.programid IS null then 'NO' else 'YES' End as Relation  FROM devices d LEFT JOIN programdevices pd ON pd.device = d.id

通过使用此选项,您将获得具有列
关系的所有设备。如果关系字段为
YES
,则您有关系;如果
NO
则您没有关系

你可以试试这个。我想它可能会帮助你

    SELECT d.deviceno, d.devicename, p.programname
    FROM devices d
    JOIN programdevices pd ON pd.deviceid = d.id
    JOIN programs p ON p.id = pd.programid
    WHERE p.id !=3
    LIMIT 0 , 30

如果您想要所有设备,为什么不从设备d中选择d.id、d.deviceno、d.devicename?您是否希望从该查询中获得其他信息?
/
真的在where子句中吗?不仅仅是全部。首先,我想显示与给定程序有关系的所有设备。然后,当用户单击“添加未使用的设备”时,我想显示当前与当前程序没有关系的所有设备。/实际上不在where子句中。它代表第一个或第二个case在这种情况下,作为两个单独的查询不是更好吗?当然,我在单独的select查询中这样做。但是,为什么两个select查询都提供一个空结果呢?