我正在尝试从一个表中进行 sql 选择,然后从第二个表中进行 sql 选择,然后将结果放入同一个数组中。
我使用的原始 SQL 查询如下:
$sql = "SELECT users.*, cursos.titulo, subscriptions.status
FROM users
LEFT OUTER JOIN subscriptions
ON users.userID = subscriptions.user_id
LEFT OUTER JOIN cursos
ON cursos.id = subscriptions.curso_id";
这是从表用户中提取所有数据,然后根据表订阅的值从表游标中获取数据。这样,查询的工作方式就像从表 users 中提取相同的数据,具体取决于在 subcriptions 表中可以找到多少次用户 ID。假设订阅表包含
curso_id | user_id
14 | 48
12 | 48
在这种情况下,它将生成 2 个数组,每个数组都包含来自用户的所有数据,而不是来自 cursos 的数据。
所以我的问题是如何进行 SQL 查询,该查询将首先执行 SELECT * FROM Users ,在完成表中的第一行之后,我想执行第二个查询,如下所示:
SELECT users.id, cursos.titulo, subscriptions.status
FROM users
LEFT OUTER JOIN subscriptions
ON users.userID = subscriptions.user_id
LEFT OUTER JOIN cursos
ON cursos.id = subscriptions.curso_id
并将所有信息放在一个变量中作为titulo,并放在另一个变量中作为状态。在这种情况下,此信息可以是各种结果,因此应该用逗号或空格分隔,但重要的是要加载到数组的同一单元格中。
此操作将生成一个数组,其中每个用户包含 1 行,其中包含所有用户数据列,另外 2 列用于标题和状态,它们的每一行应包含从 cursos 表中提取的各种结果,具体取决于多少次在这种情况下,时间用户 ID 在订阅表中显示为“48”。目标是将标题和状态的信息放在单个单元格上,无论 cursos 表中有多少结果。欢迎任何帮助。
所以最终的结果数组应该是这样的: