Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm cách nào để tìm kết hợp hàng> cột với Nối chéo? [SQL]

Bạn có thể sử dụng cross join và lọc:

select t1.post_title, t2.post_title, t3.post_title
from t t1 cross join
     t t2 cross join
     t t3
where t1.category_id = 1 and
      t2.category_id = 2 and
      t3.category_id = 3;

Bạn có thể khái quát điều này bằng cách sử dụng CTE đệ quy:

with recursive tt as (
      select t.*, dense_rank() over (order by category_id) as cat_seqnum
      from t
     ),
     cte as (
      select cat_seqnum, post_title
      from tt
      where cat_seqnum = 1
      union all
      select  tt.cat_seqnum, concat_ws('-', cte.post_title, tt.post_title)
      from cte join
           tt
           on tt.cat_seqnum = cte.cat_seqnum + 1
     )
select *
from cte
where cat_seqnum = (select max(cat_seqnum) from tt);

Tại đây là một db <> fiddle.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Android Sqlite Insert nếu không tồn tại

  2. PostgreSQL:một mẫu gán biến hợp lệ?

  3. Cách thiết lập MySQL Replication trong RHEL, Rocky và AlmaLinux

  4. Ở ĐÂU và CÓ

  5. Sequelize:Kết hợp các trường trong mệnh đề WHERE LIKE