Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana menemukan baris> kombinasi kolom dengan Cross Join? [SQL]

Anda dapat menggunakan cross join dan pemfilteran:

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;

Anda dapat menggeneralisasi ini menggunakan CTE rekursif:

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);

Di sini adalah db<>biola.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql temukan id terkecil + unik yang tersedia

  2. Pilih catatan hanya jika yang sebelumnya memiliki nilai lebih rendah

  3. bagaimana cara membuat daftar hasil kueri mysql dalam urutan tertentu?

  4. Menggunakan Database Relasional MySQL di Debian 6 (Squeeze)

  5. Bagaimana saya bisa mendapatkan jumlah baris 'dikembalikan' dari kumpulan hasil prosedur tersimpan