複数のテーブルの行を列に変換する MySQL クエリ
P粉882357979
P粉882357979 2023-08-13 16:02:22
0
1
570
<p>MySQL の 3 つのテーブルからの選択クエリについて質問する必要があります。 </p> <p>同様のテーブルが 3 つあります: </p> <p><strong>表_1</strong></p> <pre class="brush:php;toolbar:false;">menu_id | menu_name 1 | メニュー 1 2 | メニュー 2</pre> <p><strong>表_2</strong></p> <pre class="brush:php;toolbar:false;">item_id | menu_id | item_name 1 | 1 | プロジェクト 1 2 | 1 | プロジェクト 2 3 | 2 | プロジェクト 3 4 | 2 | プロジェクト 4</pre> <p><strong>表_3</strong></p> <pre class="brush:php;toolbar:false;">価格 ID | アイテム ID | 通貨コード | 価格 1 | 1 | ユーロ | 3.65 2 | 1 | 米ドル | 3.45 3 | 2 | ユーロ | 9.00 4 | 4 | レベル | 4.85 5 | 4 | RON | 9.60</pre> <p>次の出力 SELECT を実行する必要があります:</p> <pre class="brush:php;toolbar:false;">item_id | item_name | menu_id | menu_name | p_EUR | p_USD | p_GBP | p_RON | p_LEV 1 | アイテム 1 | 1 | メニュー 1 | 3.65 | 3.45 | 0 | 0 | 0 2 | アイテム 2 | 1 | メニュー 1 | 9.00 | 0 | 0 | 0 | 0 3 | アイテム 3 | 2 | メニュー 2 | 0 | 0 | 0 | 0 | 0 4 | アイテム 4 | 2 | メニュー 2 | 0 | 0 | 0 | 9.60 | 4.85</pre> <p>クエリの列 (p_EUR、p_USD など) に table_3 の行を入力したいと考えています。一致するレコードがない場合は、0 または NULL が返されます。 テーブルは、<code>table_1.menu_id=table_2.menu_id</code> および <code>table_2.item_id=table_3.item_id</code> を介して結合されます。 </p>
P粉882357979
P粉882357979

全員に返信(1)
P粉476046165

case when

を使用できます。 リーリー

null を 0 に変換する必要がある場合は、以下に示すように COALESCE を使用できます。 COALESCE(MAX(CASE WHEN t3.currency_code = 'LEV' THEN t3.price END), 0) AS p_LEV

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート