当前位置: 首页 > 面试题库 >

如何在此查询中修复联接

华俊弼
2023-03-14
问题内容

我想我正在解决这个问题,但是遇到了另一个障碍,并且不知道如何解决它

此查询有什么问题-
只需获取通用的“您有一个错误”,它指向联接,但我不知道如何解决它。我想要对customer_address_entity进行联接,因为它具有我需要在其中一条select语句中使用的另一个唯一ID。

    select c.*, 
(
select caet.value 
from customer_address_entity_test caet 
where cae.entity_id = caet.value_id 
and caet.attribute_id = 23
) as test,
(
select caev.value 
from customer_address_entity_varchar caev 
where caet.entity_id = caev.entity_id 
and caev.attribute_id = 23
) as two
from customer_entity c where store_id = 15
join customer_address_entity cae on c.`entity_id` = cae.`parent_id`;

问题答案:

首先,您的代码如下所示:

select  c.*, 
        (
            select  caet.value 
            from    customer_address_entity_test caet 
            where   cae.entity_id = caet.value_id 
                    and caet.attribute_id = 23
        ) as test,
        (
            select  莽aev.value 
            from    customer_address_entity_varchar caev 
            where   caet.entity_id = caev.entity_id 
                    and caev.attribute_id = 23
        ) two
join customer_address_entity cae on c.`entity_id` = cae.`parent_id`
from customer_entity c where store_id = 8

很明显,您在FROM之前有JOIN。

其次,您有一个带有unicode字符的莽aev。我不知道这是否有意。

可能这将工作:

select  c.*, 
        (
            select  caet.value 
            from    customer_address_entity_test caet 
            where   cae.entity_id = caet.value_id 
                    and caet.attribute_id = 23
        ) as test,
        (
            select  caev.value 
            from    customer_address_entity_varchar caev 
            where   caet.entity_id = caev.entity_id 
                    and caev.attribute_id = 23
        ) as two
from customer_entity c
join customer_address_entity cae on c.`entity_id` = cae.`parent_id`
where store_id = 8

我在“两个”同盟旁边添加了一个“ as”,只是为了使您的代码一致。



 类似资料:
  • 创建表。( INT NOT NULL AUTO_INCREMENT, VARCHAR(45)为空, 主键()); 创建表。( 十进制(6,2)为空, 十进制(6,2)为空, VARCHAR(45)为空, 插入.(,,,)值(101、'joselin','1000','dexcity'); 插入.(,,,)值(102、“rusfal”,“0”,“donxes”);在.(,,,)中插入值(103、“r

  • 我试图做Java本地接口,这是使用gcc编译c文件和Java代码是 如何修复输出NaN

  • 问题内容: 我有这个MySQL查询,它使用和: 我将如何修改该查询以使其与PostgreSQL一起使用? 问题答案: 这是最新的手册 http://www.postgresql.org/docs/current/static/functions- datetime.html#FUNCTIONS-DATETIME- EXTRACT 顺便说一句:这也是在MySQL上也可以使用的标准(ANSI)SQL。

  • 问题内容: 我有一个基本的键值表,其中包含每个用户的一些数据。使用更新的mysql进行分组时,其设置为(新的默认值)。当我尝试运行此简单查询时: 我收到以下错误: SQL错误(1055):SELECT列表的表达式#1不在GROUP BY子句中,并且包含未聚合的列’date.user_features.user_id’,该列在功能上不依赖于GROUP BY子句中的列;这与sql_mode = onl

  • 问题内容: 我有一个表,像这样的数据: 表结果: 我需要涵盖以下所有方案的输出。 对于“审计”和“历史记录”字段应如何显示值有一条经验法则; 记录仅对于 原始帐户 应具有Audit =“ ADD”或“ CHANGE”&History =“ NEW”,“ BEFORE”或“ CURRENT” (这意味着表中的条目肯定从CurrNo = 1开始) 对于这种类型的帐户,记录不应该具有针对 迁移帐户的 A

  • 问题内容: 您能否将我引导到与Oracle中此查询等效的内容: 谢谢 问题答案: 查询从中检索所有行,然后在中检索行数。这样做只是性能优化:它使您不必进行两次查询。 如果性能不是问题,那么Oracle的等效项将是: 如果您可以重写客户端,则可以在一个查询中执行以下两项操作: