我试图运行多个SQL查询,所有这些都依赖于彼此。
我现在得到的不能工作,所以我将展示我现在拥有的,并且我将解释它需要做什么。
SET @sub_cat_id = SELECT MAX(category_id) FROM exp_br_product_category WHERE product_id = '1234';
SET @prim_cat_id = SELECT parent_id FROM exp_br_category WHERE category_id = @sub_cat_id;
SET @prim_cat_title = SELECT url_title FROM exp_br_category WHERE category_id = @prim_cat_id;
SET @sub_cat_title = SELECT url_title FROM exp_br_category WHERE category_id = @sub_cat_id;
$title1 = SELECT @prim_cat_title;
$title2 = SELECT @sub_cat_title;
预期的输出应该是$title1 = maincat和$title2 = subcat。这样,我们就可以从最后两个变量构建一个URL。
我已经研究了stackoverflow,但我似乎找不到任何接近我正在做的事情。有人能帮我制作一个查询,将正常工作吗?
提前感谢您的帮助!
编辑
这两个表分别是exp_br_product_category和exp_br_category, exp_br_category存储有关产品及其各自类别的信息,exp_br_category存储来自站点的所有类别信息(包括类别的父ID和url标题)。
通过在查询中进行连接来检索数据可能是一种更好的方法,即在单个查询中连接多个表:
SELECT
prim_cat.url_title as prim_cat_title, sub_cat.url_title as sub_cat_title
FROM
exp_br_product_category prod_cat,
exp_br_category prim_cat,
exp_br_category sub_cat
WHERE
prod_cat.product_id = 1234 and
prod_cat.category_id = sub_cat.category_id and
prim_cat.category_id = sub_cat.parent_id
ORDER BY
prod_cat.category_id desc
LIMIT 1
(我没有使用max()聚合函数,而是将结果按降序排序,并将查询限制为一个应该获得相同结果的结果)
也许你可以在这里或这里读到一些关于连接的内容。
然而,不管查询是如何形成的,它都不应该是500错误的原因。这很可能是一个web服务器配置错误,也许是您的.htaccess
文件中的错误,或者,不太可能,与特定的PHP和web服务器配置,只是PHP文件中的语法错误。