php - SQL查询从另一个表获取数据

标签 php mysql sql

我一直在尝试构建一个稍微复杂的 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/

相关文章:

PHP:如何检查一年中的季节并相应地设置类(class)

php mysql左连接计数列相同的id

mysql - 计算SQL中两行之间的差异

php - MySQL 查询结果的版本控制

mysql - 改变查询以返回关注者列表以包含 followedBack 字段

mysql更新。计数,其中列为空并且列相同的行

php - 如何将不同的元素关联到一对多的类别?

php - session 注入(inject)?

php - 使用 MySQL 查询作为 PHP 脚本的标识,将 FCM 推送通知发送到 Android 应用程序中的特定设备

mysql - Docker Wordpress 连接到本地主机上的数据库服务器