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

sql как да комбинирате три заявки от две таблици в една заявка

Тези изисквания са достатъчно объркващи, така че може да си струва преоценката на вашия модел на данни. Мисля, че UNION решението е най-добрият ви залог, евентуално модифициран, за да използвате UNION ALL за ефективност.

Събрах хак, базиран на мютекс, който вероятно има толкова фини проблеми, колкото всички други заявки на тази страница.

select
  coalesce(t2.id, t1.name) AS ID,
  coalesce(t2.company, t1.name) AS Company,
  if(isnull(t2.id), 'NOT FOUND', 'FOUND') as Status
from (select 0 as mutex union select 1) as m
left join table1 as t1 on 1 = 1
left join table2 as t2 on t1.name = t2.name or (t1.id = t2.id and mutex)
group by coalesce(t2.id, t1.name)

Въпреки това, моля, тествайте тези заявки внимателно и прегледайте данните и резултатите си. Има много място за грешки в зависимост от вашите входни данни.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. AWS rds - Как да чета от прочетена реплика в Java приложение?

  2. Пагинация в PDO PHP

  3. Използване на ЗНП в часовете

  4. Поръчване на MySQL резултат, зададен от MAX() стойност на друга таблица

  5. MySQL заявка за получаване на имена на колони?