sql >> Database teknologi >  >> RDS >> Mysql

Hvordan flettes data fra flere kolonner til én? [Adjacency List Model Query]

Som du sagde, kan du bruge en UNION over resultatet af din forespørgsel. I resten af ​​svaret vil jeg vise dig en løsning, der bruger CTE, som er en standard SQL-syntaks, der er tilgængelig i mange systemer, men desværre ikke i MySQL. Men for at konvertere denne forespørgsel til MySQL kan du se på følgende svar:Hvordan bruger du "WITH"-klausulen 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. Overtrædelse af begrænsning ved vedvarende One To Many-relation

  2. Emulator vs Samsung-enhed SD-kortlagring

  3. At sortere en VARCHAR-kolonne som FLOAT ved hjælp af CAST-operatoren virker ikke i MySQL

  4. Kan en attribut angive en tabel frem for en anden?