gpt4 book ai didi

mysql - 从子查询返回数据

转载 作者:行者123 更新时间:2023-11-29 15:40:01 24 4
gpt4 key购买 nike

来自桌面数据库领域,需要一些有关 PHP 文件中使用的 SELECT 查询的建议。

对 JOINS 感到非常困惑,这可能是我需要让以下内容正常工作的原因。

我有以下查询(从 MySQL 数据库中提取数据):

SELECT  mem_id, firstname, lastname FROM memberdetails 
WHERE mem_id in (select mem_id from classmember
WHERE class_id= " . $classid . ")
ORDER BY lastname, firstname ASC

返回预期的数据集。

然后程序循环返回的数据,并且对于每一行都有一个后续查询:

SELECT group_id FROM `classmember` 
WHERE (`mem_id`= '$memid' AND `class_id`= '$classid')

我认为应该有一种方法可以将其合并到第一个查询中,以返回按 group_id、lastname、firstname、mem_id 排序的数据集,从而保存后续查询(以及此处未显示的进一步操作)。但是我看不到让它发挥作用。

最佳答案

是的,可以使用联接将其合并到一个查询中。

这应该可以做到:

SELECT  
md.mem_id,
md.firstname,
md.lastname,
cm.group_id
FROM
memberdetails AS md
INNER JOIN
classmember AS cm
ON cm.mem_id = md.mem_id
WHERE
cm.class_id = ?
ORDER BY
cm.group_id, md.lastname, md.firstname, md.mem_id ASC

尚未经过测试,因此如果某些内容不起作用/看起来错误,请发表评论。

注意:如您所见,我使用了 ? 而不是 PHP 变量。这是因为您应该使用带有占位符的准备好的语句,而不是直接将变量注入(inject)到查询中。

您可以在 PHP 手册中阅读有关准备好的语句的更多信息:

要了解有关联接的更多信息,您可以阅读以下文章:

关于mysql - 从子查询返回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57773550/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com