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

Как да свържете множество стойности от множество таблици на релации в една заявка на mysql

Трябва да използвате различно присъединяване с rel_destinations за да получите офертите с Прага като дестинация. Присъединете се към това с оригиналната си заявка.

SELECT offers.*, 
  GROUP_CONCAT(DISTINCT DEPC.name SEPARATOR ', ') AS depCities,
  GROUP_CONCAT(DISTINCT DESTC.name SEPARATOR ', ') AS destCities
FROM offers
INNER JOIN `rel_departments` ON (`rel_departments`.`offer_id` = `offers`.`id`)
INNER JOIN `departments` as DEPC ON (DEPC.`id` = `rel_departments`.`rel_id`)
INNER JOIN `rel_destinations` ON (`rel_destinations`.`offer_id` = `offers`.`id`)
INNER JOIN `destinations` as DESTC ON (DESTC.`id` = `rel_destinations`.`rel_id`)
INNER JOIN rel_destinations AS d1 ON d1.offer_id = offers.id
WHERE d1.rel_id = 1
GROUP BY offers.id

ДЕМО




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Свържете се с MySQL отдалечено

  2. изберете агрегатна функция и всички други колони

  3. Индексът за решаване за потребител на таблица е повреден; опитайте се да го поправите

  4. MySQL InnoDB Cluster 8.0 - Пълен преглед на операцията:Част втора

  5. Как да преброя всички NULL стойности в таблица?