[英]PHP and SQL query to select ids and then use those ids in another query
我有以下查询:
SELECT
DISTINCT(t1.aid),
t1.t1Name,
t1.startDate,
t1.startTime,
t1.endDate,
t1.endTime,
t1.version,
t5.name,
FROM t1
LEFT JOIN t2
ON t2.aid= t1.aid
LEFT JOIN t3
ON t3.gid= t2.gid
LEFT JOIN t4
ON t4.sid= t3.sid
LEFT JOIN t5
ON t5.cid= t4.cid
ORDER BY t5.cid, t4.sNum
运行查询后,我使用 while 循环得到一个数组,如下所示:
$values[] = array('name', 'aid', 'startDate', 'startTime', 'endDate', 'endTime', 't1Name', 'version')
我想使用 t1.aid 来收集另一个数组并将该数组添加到原始数组中,其中 t1.aid 将形成如下内容:
$values[] = array('name', 'aid', 'startDate', 'startTime', 'endDate', 'endTime', 't1Name', 'version', 'groups'=> array())
目前我正在 foreach 循环中运行另一个查询,而且速度很慢。 我希望有一种方法可以同时运行两个查询(或至少避免 foreach 循环)...第二个查询是:
SELECT
t6.groupName,
t4.sNum,
t5.name
FROM t6
LEFT JOIN t2
ON t2.gid = t6.gid
LEFT JOIN t4
ON t4.sid = t2.sid
LEFT JOIN t5
ON t5.cid = t4.cid
WHERE t2.aid = :aid
注意:t1、t2、t3 等在两个查询中是相同的表。
Output:
$groups[] = array('groupName', 'sNum', 'name')
提前感谢您,并对格式错误和/或难以阅读表示歉意。
只需使用子选择:
INSERT INTO table_1 (id) VALUES ((SELECT id FROM table2));
UPDATE table1 SET column1=((SELECT id FROM table2));
您可以使用普通SELECT
执行的所有操作,您可以使用子SELECT
执行所有操作,包括LEFT JOIN
和INNER JOIN
。 您只需要确保返回适当/匹配数量的列。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.