у меня есть 2 таблицы, как это:Изменение запросов MySQL для объединения нескольких столбцов вместо из раздельных линий
Table: Company
id| Name | Area
1 | Company A | New York
2 | Company B | New York
3 | Company C | Chicago
Table: Service
id| Type
1 | Service
1 | Delivery
2 | Hotel
2 | Restaurants
3 | Movers
Я хотел бы получить результаты только для Нью-Йорка, как это (без чикаго):
Name | Area | Type
Company A | New York| Service, Delivery
Company B | New York| Hotel, Restaurants
Но я вместо того, чтобы получить это:
Name | Area | type
Company A | New York | Service
Company A | New York | Delivery
Company B | New York | Hotel
Company B | New York | Restaurants
Я попытался с помощью различны и CONCAT решать свои проблемы, но ю e запросы не заканчиваются, вместо этого они теряют время после работы более 6 секунд. Если я запустил запрос, чтобы получить результаты, которые я получил прямо сейчас, я получаю результаты менее 1 с.
Вот запросы я пытался до сих пор:
select p1.Name,
GROUP_CONCAT(p2.Type) from company as p1, service as p2
GROUP BY p1.CompanyName
LIMIT 10;
Результат: Тайм-аут
select DISTINCT company.Name from company
LEFT JOIN service
ON company.Number = service.Number AND service.Type LIKE '% York'
Limit 50;
Результат: никогда не заканчивается (даже не тайм-аут)
select p1.Name, p2.type from company as p1, service as p2
where p1.id = p2.id
LIMIT 10;
Результат: Показывает действительно испорченные результаты, которые не могут быть такими:
Name | Type
Company A | Hotel
Company B | Delivery
Company B | Restaurants
БД была первоначально Microsoft Access и я получал такие результаты там, не будучи знакомым с Microsoft Access я вычислял Microsoft должен быть проблемы и пытался получить запрос выполняется в MySQL, но одни и те же проблемы, что там происходит ... если я попытаюсь вручную подсчитать данные, то, что отображается, не отображается вообще, и это меня действительно смущает ... может кто-нибудь, пожалуйста, заглянуть в мои запросы и посоветовать мне, что я делаю неправильно? thx!
это работает с Code-Монахи помогают, Heres модифицированный запрос, который обрабатывает частичный поиск: выберите c.name, c.area , group_concat (s.Type) как тип от компании c службой внутреннего соединения s на c.id = s.id где c.area LIKE '% York' группа по s.id; – somanit