相互依赖的多个SQL查询


Multiple SQL Queries that rely on each other

我试图运行多个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文件中的语法错误。