sql обединение
есть таблица предммета голосования с айди
таблица голосов с привязкой к айди предмета голосования.Нужно достать голоса за последние сутки и за месяц. обе таблицы достать по отдельности получается. а вот одним запросом нет.куда капать? одним запросом пробывал достовать через юнион ..... |
телепаты в отпуске
|
когда вернться ? XDDD
Код:
foto (id,user) голосовать можно каждые 8 часов. Код:
select foto.id,count(kol) from foto Код:
select foto.id,count(kol) from foto всё работает всё замечателено но хочется одним запросом |
то есть вывод
таб1(номер, голоса всего1) таб2(номер, голоса всего2) надо соединить по номеру и получить таб(номер, голоса всего1, голоса всего2) |
SELECT foto.id, COUNT(g1.kol), COUNT(g2.kol) FROM foto LEFT JOIN golos AS g1 ON foto.id=g1.foto_id LEFT JOIN golos AS g2 ON foto.id=g2.foto_id AND g2.time BETWEEN $t1 AND NOW() |
count считает строки 8(((( а мне надо считать значения в этих строках .к тому же при нуле голосов, каунт будет считать нулл. 8(((
можно сделать SELECT foto.id, sum(g1.kol), sum(g2.kol) FROM foto LEFT JOIN golos AS g1 ON foto.id=g1.foto_id LEFT JOIN golos AS g2 ON foto.id=g2.foto_id AND g2.time BETWEEN $t1 AND NOW() но тут косяк при нуле голосов тоже 8 ((( |
cuberboy, а погуглить слабо, чтоли? К тому же Вы сами count в примере написали, а телепаты, как уже говорилось, в отпуске.
SELECT foto.id, SUM(IFNULL(g1.kol,0)), SUM(IFNULL(g1.kol,0)) FROM foto LEFT JOIN golos AS g1 ON foto.id=g1.foto_id LEFT JOIN golos AS g2 ON foto.id=g2.foto_id AND g2.time BETWEEN $t1 AND NOW() |
А чем UNION не устраивает ?
select foto.id,count(kol) from foto left join golos on foto.id=golosa.foto_id UNION select foto.id,count(kol) from foto left join golos on foto.id=golosa.foto_id and golos.time BETWEEN $t1 and now() |
Цитата:
|
ой, чуть не заметил ) виноват
|
пасип
|
а если тоже самое только столбца "количества " нету...
|
сделал
sum( kom.id is not null ) |
Часовой пояс GMT +3, время: 05:36. |