Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

क्रॉस जॉइन के साथ पंक्तियाँ> कॉलम संयोजन कैसे खोजें? [एसक्यूएल]

आप cross join . का उपयोग कर सकते हैं और फ़िल्टरिंग:

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;

आप पुनरावर्ती CTE का उपयोग करके इसे सामान्य कर सकते हैं:

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

यहां एक डीबी<>बेला है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पेजिनेशन पेज नंबर सीमित करें

  2. डॉकर:कई छवियों को मिलाएं

  3. चेतावनी:PDO::__construct():[2002] ऐसी कोई फ़ाइल या निर्देशिका (unix:///tmp/mysql.sock के माध्यम से कनेक्ट करने का प्रयास) में नहीं

  4. MySQL:1970 से पहले की तारीखें

  5. चेतावनी:mysql_result() [function.mysql-result]:लाइन 11 पर प्रोफ़ाइल.php में MySQL परिणाम अनुक्रमणिका 5 पर पंक्ति 0 पर जाने में असमर्थ