Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите с mysql запросом.

sai tim asdasd Ученик (112), закрыт 5 лет назад
В общем у меня есть несколько связанных таблиц...
Необходимо в одном запросе вывести информацию сразу из двух таблиц и выполнить group by. По отдельности я могу сделать, а вместе никак помогите ((

вот запросы по отдельности
1) select id, data from cities,transfer where cities.code=transfer.cityNum;

2) select data, count(*) from transfer group by data;

Ну думаю вы поняли, чтобы в исходной таблице было название страны в начале
Лучший ответ
Jurijus Zaksas Искусственный Интеллект (425041) 5 лет назад
Примерно так:

select c.id, c.data, t.data, count(*)
from cities c
inner join transfer t
on c.code=t.cityNum
group by c.id, c.data, t.data

Я ХЗ, в какой таблице (или в обоих?) у тебя data, всегда используй алиасы - будет понятнее.
sai tim asdasdУченик (112) 5 лет назад
Ок спасибо получилось, а если еще хочу добавить в итоговую таблицу строку из таблицы transfer, то как быть?
Jurijus Zaksas Искусственный Интеллект (425041) Э-э-э-э... Чуть менее чем никак. Дело в том, что весь SQL - это манипуляции множествами. Соединив 2 таблицы ты получил новое множество, не являющееся совместимым с исходными (имеющее другой домен). Поэтому добавлять в него что-то из исходных множеств просто не нужно. Но чисто технически можно добавить в любое множество что угодно оператором UNION, если домены объединяемых множеств совместимы. Например: select c.id, c.data, t.data, count(*) from cities c inner join transfer t on c.code=t.cityNum group by c.id, c.data, t.data union all select 0, t.data, t.data, 0 from transfer t where t....
Остальные ответы
Похожие вопросы