【发布时间】:2014-05-08 09:57:42
【问题描述】:
我一直在尝试构建一个稍微复杂的 SQL 查询,以从与我需要“询问”的表无关的表中获取一些键。
实际案例:
我有四个表:users、devices、preferences 和 user_devices。
- 表用户,有用户信息和用户“ID”。
- 表设备,有设备信息列,设备“ID”(设备ID)和设备“密钥”(设备内部ID)。
- 表格首选项、“用户 ID”和一些带有工作日(星期一、星期二、星期三...)的布尔字段。
- 表 user_devices,分配 ID(auto_increment,不重要)、“user_id”和“device_id”以及与各自表的关系。此表用于将设备分配给用户。
问题是我需要获取在表首选项中将首选项“星期一”设置为 true 的用户的所有“devices.key”。
示例:我向数据库询问偏好设置为 monday true 的设备,然后我获得了一个包含两个设备密钥的数组。
此查询获取用户 4 的设备密钥,但我需要获取数据库中“星期一”设置为 true (1) 的所有用户的设备密钥。
SELECT key FROM devices, user_devices WHERE devices.id = user_devices.device_id AND user_devices.user_id = 4
非常感谢。
【问题讨论】:
-
你可以试试JOIN函数,或许对你有帮助。
-
我已经尝试加入 preferences.id 和 user_devices.user_id 但我不知道如何使用 JOIN 来调整查询以满足我的需求...:/