我一直在尝试构建一个稍微复杂的 SQL 查询,以从与我需要“询问”的表无关的表中获取一些键。
实际案例:
我有四个表:用户、设备、首选项和 user_devices。
- 表users,有用户信息和用户“ID”。
- 表格设备,有设备信息、设备“ID”(设备ID)和设备“key”(设备内部ID)的列。
- 表格首选项、“用户 ID”以及一些包含工作日(星期一、星期二、星期三...)的 bool 字段。
- 表user_devices,分配ID(自动增量,不重要),“user_id”和“device_id”与其各自表的关系。此选项卡用于将设备分配给用户。
问题是,我需要获取在表首选项中将首选项“星期一”设置为 true 的用户的所有“devices.key”。
示例:我向数据库询问首选项星期一为 true 的设备,并获得一个包含两个设备 key 的数组。
此查询获取用户 4 的设备 key ,但我需要获取数据库中“monday”设置为 true (1) 的所有用户的设备 key 。
从设备 user_devices 中选择 key ,其中 devices.id = user_devices.device_id AND user_devices.user_id = 4
非常感谢。
最佳答案
您可以尝试以下查询
SELECT `devices`.`key`
FROM users
JOIN preferences ON users.id = preferences.user_id
JOIN user_devices ON users.id = user_devices.user_id
JOIN devices ON user_devices.device_id = devices.id
WHERE preferences.monday = true
显然,您必须检查并更正查询中首选项和用户表的列名称,以匹配您的数据库列名称。
关于php - SQL查询从另一个表获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23538469/