次の状況で問題が発生しています: 2 つの一時テーブルを作成するクエリがあり、次のように選択してそれらを結合します。
SELECT * FROM result
INNER JOIN result2 ON result2.packetDetailsId = result.packetDetailsId
次に、結果のフィールドのいくつかを連結して別の列を作成し、それを使用して別のテーブルに対して参照/クエリを実行しようとしています。1 つのクエリでこれを達成する方法はありますか? 一時テーブルから離れるべきですか?
よろしくお願いします。
更新: 2 つの一時テーブルの組み合わせにエイリアスを設定しようとすると、[Err] 1060 - Duplicate column name 'packetDetailsId' というエラー メッセージが表示されます
select * from (
SELECT * FROM result
INNER JOIN result2 ON result2.packetDetailsId = result.packetDetailsId) as myalias
別の更新: ほぼ 1 つのクエリとして機能していますが、結合した列に "(BLOB)" という結果が表示されます:
select packet_details.packetDetailsId,products.productId,Credit,AccountNum,OrderStat, CONCAT(products.productId,Credit,'_',OrderStat) as consol from (
select packetDetailsId, GROUP_CONCAT(Credit) AS Credit, GROUP_CONCAT(AccountNum) AS AccountNum, GROUP_CONCAT(OrderStat) AS OrderStat FROM
( SELECT pd_extrafields.packetDetailsId,
CASE WHEN pd_extrafields.ex_title LIKE ('%Credit%')
THEN pd_extrafields.ex_value ELSE NULL END as Credit,
CASE WHEN pd_extrafields.ex_title LIKE ('%Account%')
THEN pd_extrafields.ex_value ELSE NULL END as AccountNum,
CASE WHEN pd_extrafields.ex_title LIKE ('%Existing%')
THEN pd_extrafields.ex_value ELSE NULL END as OrderStat
FROM pd_extrafields )AS TempTab GROUP BY packetDetailsId ) as alias2
INNER JOIN packet_details ON alias2.packetDetailsId = packet_details.packetDetailsId
内部結合 sales ON packet_details.packetDetailsId = sales.packetDetailsId
内部結合 sold_products ON sales.saleId = sold_products.saleId 内部結合 products ON sold_products.productId = products.productId