sql >> データベース >  >> RDS >> Mysql

複数の列のデータを1つにマージする方法は? [隣接リストモデルクエリ]

    あなたが言ったように、あなたはUNIONを使うことができます クエリの結果に対して。残りの回答では、CTEを使用したソリューションを紹介します。これは、多くのシステムで使用できる標準のSQL構文ですが、残念ながらMySQLでは使用できません。ただし、このクエリをMySQLに変換するには、次の回答を参照してください。 MySQLで「WITH」句をどのように使用しますか?

    WITH query AS (
      SELECT t1.categoryid AS lev1, t2.categoryid as lev2, t3.categoryid as lev3, t4.categoryid as lev4
      FROM category AS t1
      LEFT JOIN category AS t2 ON t2.parent = t1.categoryid
      LEFT JOIN category AS t3 ON t3.parent = t2.categoryid
      LEFT JOIN category AS t4 ON t4.parent = t3.categoryid
      WHERE t1.categoryid = 4149418031)
    SELECT lev1 AS category_value FROM query
      UNION
    SELECT lev2 AS category_value FROM query
      UNION
    SELECT lev3 AS category_value FROM query
      UNION
    SELECT lev4 AS category_value FROM query;
    



    1. テーブルを結合せずにPHPで2つ以上のSQLクエリを実行する方法

    2. MySqlでのUnicodeデータの読み取り/書き込み

    3. MySqlはsp_getapplockをサポートしていますか

    4. SQLが機能していません