Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak połączyć dane z wielu kolumn w jedną? [Zapytanie o model listy sąsiedztwa]

Jak powiedziałeś, możesz użyć UNION nad wynikiem zapytania. W dalszej części odpowiedzi pokażę Ci rozwiązanie wykorzystujące CTE, czyli standardową składnię SQL dostępną w wielu systemach, ale niestety nie w MySQL. Jednak, aby przekonwertować to zapytanie na MySQL, możesz spojrzeć na następującą odpowiedź:Jak używać klauzuli "WITH" w 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wstawić moment JS do MySQL

  2. Czy serwer proxy RDS wpływa na bieżące buforowanie po stronie aplikacji?

  3. mysql:po prostu wybierz coś, co wydarzy się w weekend

  4. Czy możesz podzielić/rozbić pole w zapytaniu MySQL?

  5. Losowy wiersz z dużego wyniku zapytania