sql >> Databasteknik >  >> RDS >> Mysql

Hur slår man ihop data från flera kolumner till en? [Adjacency List Model Query]

Som du sa, du kan använda en UNION över resultatet av din fråga. I resten av svaret kommer jag att visa dig en lösning som använder CTE, vilket är en standard SQL-syntax som finns tillgänglig i många system, men tyvärr inte i MySQL. Men för att konvertera den här frågan till MySQL kan du titta på följande svar:Hur använder du "WITH"-satsen i MySQL?

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. Använda pivot på flera kolumner i en Oracle-rad

  2. INFOGA med LIST i lagrad procedur

  3. EF5:Kan inte bifoga filen '{0}' som databas '{1}'

  4. PHP – Simple Nested Unordered List (UL) Array