>  Q&A  >  본문

여러 테이블의 행을 열로 변환하는 MySQL 쿼리

<p>3개 테이블의 MySQL 선택 쿼리에 대해 문의하고 싶습니다. </p> <p>비슷한 테이블이 3개 있습니다. </p> <p><strong>table_1</strong></p> <pre class="brush:php;toolbar:false;">menu_id | 1 | 메뉴 1 2 | 메뉴 2</pre> <p><strong>table_2</strong></p> <pre class="brush:php;toolbar:false;">item_id 메뉴_이름 | 1 | 1 | 2 | 1 | 3 | 2 | 4 | 2 | 프로젝트 4</pre> <p><strong>table_3</strong></p> <pre class="brush:php;toolbar:false;">price_id | 통화_코드 | 1 | 3.65유로 | 2 | 1 | 3.45 | 3 | 2유로 | 4 | 4 | 5 | 4 | 9.60</pre> <p>다음 출력 SELECT를 수행해야 합니다. </p> <pre class="brush;toolbar:false;">item_name | 메뉴_이름 | p_USD | 1 | 항목 1 | 3.45 0 | 2 | 항목 1 | 0 | 3 | 항목 2 | 0 | 4 | 항목 2 | 0 | <p>테이블_3의 행으로 쿼리 열(p_EUR, p_USD 등)을 채우고 싶습니다. 일치하는 레코드가 없으면 0 또는 NULL이 반환됩니다. 테이블은 <code>table_1.menu_id=table_2.menu_id</code> 및 <code>table_2.item_id=table_3.item_id</code>를 통해 결합됩니다. </p>
P粉882357979P粉882357979456일 전540

모든 응답(1)나는 대답할 것이다

  • P粉476046165

    P粉4760461652023-08-14 10:06:04

    case when

    를 사용할 수 있습니다. 으아아아

    null을 0으로 변환해야 하는 경우 아래와 같이 COALESCE를 사용할 수 있습니다. COALESCE(MAX(CASE WHEN t3.currency_code = 'LEV' THEN t3.price END), 0) AS p_LEV

    회신하다
    0
  • 취소회신하다