我进行数据库调用以列出属于用户的所有“类别”。这会返回一个数组,其子数组包含每个类别的特定数据。
如何从这些中挑选类别ID,并将它们组合起来形成一个新查询来抓取这些类别中的所有帖子?
表:“作业”和“类”。
Assigments:assignmentid,classid,...
类:classname,userid,...
这是我正在使用的代码。
$query = dbquery("SELECT classid, classinfo FROM classes WHERE userid = 1");
这会返回一个包含子数组的数组:
Array (
[0] => Array ( [classid] => 2 [classinfo] => classinfo )
[1] => Array ( [classid] => 3 [classinfo] => classinfo )
...
如何提取所有classid,然后将它们列为“2 OR 3 OR ...”以用于另一个MySQL查询?
答案 0 :(得分:1)
foreach
覆盖类别数组,构建一个新的数组或简单的字符串,您可以将其包含在帖子查询中。
这就是我所能说的,没有一些特定的代码来批评。虽然,听起来像你可以在SQL中完全做的事情。 (根据您的缓存需求,可能适用也可能不适用。)
答案 1 :(得分:1)
你真的不必这样做(在PHP中获取classids,然后发送另一个查询)。你可以简单地使用你的查询:
SELECT assignments.assignmentid
, assignments.classid
, assignments.otherfield
FROM assignments
WHERE assignments.classid IN
( SELECT classid, classinfo
FROM classes
WHERE userid = 1
)
或
SELECT assignments.assignmentid --- or whatever fields you want
, assignments.classid --- from table assignments
, classes.classinfo --- or table classes
FROM assignments
JOIN classes
ON assignments.classid = classes.classid
WHERE classes.userid = 1
这两个查询都会显示几乎相同的结果(如果从第二个查询中删除classes.classinfo
,结果将是相同的)。也就是说,所有与userid = 1的类相关的赋值数据。
网上有很多SQL教程。您可以尝试例如: w3schools.com