我有两张桌子。
表一名单
ID device_id
1 2
2 2
3 4
表二名称同步
ID devide_id list_id
1 4 2
现在,如果我想从列表表中为devide_id选择所有数据,那么显示的两行原因同步表devide_id 4有一个项目。
我正在尝试此查询
SELECT s.*
FROM list AS s,sync AS sc
WHERE s.device_id = 4 AND sc.device_id=4 AND sc.list_id=s.id
但不起作用
预期结果
对于device_id 4
ID device_id
3 4
2 2
对于device_id 2
ID device_id
1 2
2 2
答案 0 :(得分:1)
你问这个问题的方式有点难以理解。我理解的方式是,
您想要从 device_id
中具有条件的表列表中检索所有数据但是根据你的表格只会显示一条记录。
如果可能,请修改问题,以便我们能够轻松理解。
答案 1 :(得分:1)
我能看到第一个例子的唯一方法就是使用这样的东西:
SELECT s.*
FROM list AS s,sync AS sc
WHERE s.device_id = 4 OR (sc.device_id=4 AND sc.list_id=s.id)
(注意:未经测试,可能需要调整)
因为您的示例输出 设备ID为4 或,它从同步表中获取设备ID为4。