|
|
|
| Прошу прощения может не за самый умный вопрос но темнеменее.... Помогите решить задачу:
есть таблица например `Table` в ней есть поля id, record1, record2, link. Поле `Table`.`link` связано с идентификатором в другой таблице ( `mainTable`.`id` ) соотношением многие к одному. Нужно подсчитать колличество одинаковых полей `Table`.`link` и вернуть все остальные поля... т.е. таблица результатов будет иметь примерно такой вид:
`mainTable`.`id` | count(`Table`.`link`)
как должен выглядить такой sql запрос? | |
|
|
|
|
|
|
|
для: Indrikozver
(23.12.2007 в 17:20)
| | Такая таблица результатов достигается следующим запросом
SELECT `link`, COUNT(id) AS cnt
FROM `Table`
GROUP BY `link`
|
Если требуется вернуть остальные поля основной таблицы, придется досоединить основную таблицу:
SELECT `mainTable`.*, cnt FROM `mainTable`
LEFT JOIN
(SELECT `link`, COUNT(id) AS cnt
FROM `Table`
GROUP BY `link`) AS tcnt
|
| |
|
|
|
|
|
|
|
для: Indrikozver
(23.12.2007 в 17:20)
| | Запрос с добавлением данных из другой таблицы у меня так и не заработал.... Выдал ошибку... проблему удалось решить так:
SELECT
`prod_record`.`id`,
Count(`prod_record`.`prod_id`) AS `cntNumber`,
Sum(`prod_record`.`price`) AS `price`,
Sum(`prod_record`.`bal`) AS `bal`,
`product`.`name`
FROM
`prod_record`
INNER JOIN `product` ON `prod_record`.`prod_id` = `product`.`id`
GROUP BY `prod_id`
|
| |
|
|
|
|
|
|
|
для: Indrikozver
(24.12.2007 в 10:38)
| | грязно.
Формально - запрос неоднозначен. | |
|
|
|