Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL JOIN - Връща NULL за дублирани резултати в лявата таблица

Можете да замените стойностите с нещо подобно:

изберете case when rownum =1 then title else null end title, name, category_idfrom( SELECT c.title, i.name, i.category_id, @row:=(case when @prev=title и @precat =category_id след това @row else 0 край) + 1 като rownum, @prev:=title ptitle, @precat:=category_id pcat FROM елементи AS i INNER JOIN категории AS c ON c.id =i.category_id ред по i.category_id, c.title) srcorder по category_id, rownum 

Вижте SQL Fiddle с демонстрация

Резултатът е:

<предварителен код>| ЗАГЛАВИЕ | ИМЕ | КАТЕГОРИЯ_ИД |--------------------------------| червено | ябълка | 1 || (нула) | кола | 1 || (нула) | хартия | 1 || жълт | лего | 2 || (нула) | банан | 2 || синьо | писалка | 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. Проектиране на база данни:система за инвентаризация и продажби?

  2. Защо препратките към wp_postmeta са толкова бавни?

  3. Как да конфигурирате MySQL под XAMPP да работи с IPv6

  4. Проблем при намирането и показването на списък със записи от модел на връзка в приложението Rails

  5. Как да изтрия последния запис (при условие) от таблица в MySql