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

Как мога да направя заявка за таблица в таблица?

Можете да използвате променлива, за да проверите дали последният идентификатор е равен на текущия и в този случай вместо това изведете null или ''.

select
  case when c.ClientId <> @clientid then c.Name else '' end as ClientName,
  case when c.ClientId <> @clientid then @ClientId := c.ClientId else '' end as ClientId,
  p.ContactId,
  p.Name as ContactName
from
  Clients c
  inner join Contacts p on p.ClientId = c.Clientid
  , (select @clientid := -1) x
order by
  c.ClientId, p.ContactId

Пример:http://sqlfiddle.com/#!2/658e4c/6

Забележете, това е малко хакерско. Умишлено направих ClientId второто поле, за да мога да променя и върна променливата clientId в същото поле. В други, по-сложни случаи, може да се наложи да направите това в отделно поле. Но за да премахнете това поле за място от резултата, ще трябва да вградите цялата заявка в подселекция и да дефинирате желаните полета в правилния ред в заявката от най-високо ниво.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изключение в основната нишка java.sql.SQLException:Достъпът е отказан за потребител ''@'localhost' (използвайки парола:НЕ)

  2. mysql намира скорошни потребителски коментари

  3. PHP :Използване на променлива за задържане на име на таблица и използване на тази променлива в заявки

  4. Как да предам параметри на mysql

  5. Как да използвам процент (%) в LIKE, без да се третира като заместващ знак?