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

MySQL जॉइन - बाईं तालिका में डुप्लिकेट परिणामों के लिए NULL लौटाएं

आप मानों को कुछ इस तरह से बदल सकते हैं:

select 
  case when rownum = 1 then title else null end title,
  name,
  category_id
from
(
  SELECT c.title, 
    i.name, 
    i.category_id,
    @row:=(case when @prev=title and @precat=category_id 
           then @row else 0 end) + 1 as rownum,
    @prev:=title ptitle,
    @precat:=category_id pcat
  FROM items AS i
  INNER JOIN categories AS c 
    ON c.id = i.category_id
   order by i.category_id, c.title
) src
order by category_id, rownum

देखें SQL Fiddle with Demo

नतीजा यह है:

|  TITLE |   NAME | CATEGORY_ID |
---------------------------------
|    red |  apple |           1 |
| (null) |    car |           1 |
| (null) |  paper |           1 |
| yellow |   lego |           2 |
| (null) | banana |           2 |
|   blue |    pen |           3 |


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JDBC डेटाबेस दिखाएँ आदेश निष्पादित नहीं कर रहा है

  2. कैसे एक सुवक्ता मॉडल में एक जटिल आभासी स्तंभ बनाने के लिए?

  3. MySQL में रेगुलर एक्सप्रेशन में विशेष SQL वर्णों से कैसे बचें?

  4. MySQL PHP PDO ने बयान तैयार किए - प्रदर्शन के मुद्दे बनाम सुरक्षा

  5. SequelizeJS में धीमे जुड़ाव