0

私はこれに近づいていると思いますが、別の障害に遭遇し、それを修正する方法がわかりません

このクエリの何が問題なのか - 一般的な「エラーがあります」を取得するだけです。これは結合を指していますが、修正方法がわかりません。selectステートメントの1つで使用する必要がある他の一意のIDがあるため、customer_address_entityで結合が必要です。

    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`;
4

1 に答える 1

0

まず、コードは次のようになります。

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 があることは明らかです。

次に、ユニコード文字を持つ ç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

コードの一貫性を保つためだけに、「two」エイリアスの隣に「as」を追加しました。

于 2013-08-09T17:12:53.887 に答える