gpt4 book ai didi

MySQL : Using derived table in subquery

转载 作者:行者123 更新时间:2023-11-29 03:43:50 24 4
gpt4 key购买 nike

在我的(非常简化的)架构中,我有 3 个表:offers、attributes、attributes_offers。

我想在这个查询中使用派生表的子查询:

SELECT
o.offer_id,
GROUP_CONCAT(CONCAT(attr.attribute_code,'-',attr.value_id,'-',attr.value_value) SEPARATOR ';') AS attributes,
(SELECT attr.value_id FROM attr WHERE attribute_code = 'area') AS area_id,
(SELECT attr.value_id FROM attr WHERE attribute_code = 'category') AS category_id
FROM offers o
INNER JOIN (
SELECT offer_id,attribute_code,value_id,value_value
FROM attributes_offers ao
INNER JOIN attributes att USING (attribute_code)
) AS attr ON attr.offer_id = o.offer_id

但是 MySql 回答我:Table 'attr' doesn't exist

Group_concat 运作良好。

有没有办法在选择子查询中使用我的派生表属性?

最佳答案

这是正常的,因为表 'attr' 和您尝试在其上使用的选择位于不同的 block 中...这样看,您尝试做的选择在一个框中,您看不到外面是什么。试试这个

SELECT
o.offer_id,
GROUP_CONCAT(CONCAT(attr.attribute_code,'-',attr.value_id,'-',attr.value_value) SEPARATOR ';') AS attributes,
attr.value_id AS area_id,
attr.value_id AS category_id
FROM offers o
INNER JOIN (
SELECT offer_id,attribute_code,value_id,value_value
FROM attributes_offers ao
INNER JOIN attributes att USING (attribute_code)
) AS attr ON attr.offer_id = o.offer_id

如果您想获取所有 value_id,请尝试在另一个查询中执行此操作,因为您尝试执行的操作根本行不通

关于MySQL : Using derived table in subquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9479862/

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