来自桌面数据库领域,需要有关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排序的数据集,从而保存后续查询(以及此处未显示的进一步操作)。但是,我看不到使它起作用。
答案 0 :(得分:0)
是的,可以使用join合并到一个查询中。
这应该做到:
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变量。这是因为您应该使用带占位符的预准备语句,而不是将变量直接注入查询中。
您可以在PHP手册中阅读有关预准备语句的更多信息:
要了解有关加入的更多信息,您可以阅读以下文章: