| 
	| 
	
	| 
		
	| 
			
			 
			
				28.05.2010, 22:25
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 20.07.2009 
						Сообщений: 202
					 
		
 |  |  
	| 
				sql обединение
			 есть таблица предммета голосования с айдитаблица голосов с привязкой к айди предмета голосования.Нужно достать голоса за последние сутки и за месяц. обе таблицы достать по отдельности получается. а вот одним запросом нет.куда капать?
 одним запросом пробывал достовать через юнион .....
 |  |  
	| 
		
	| 
			
			 
			
				28.05.2010, 22:27
			
			
			
		 |  
	| 
		
			|  | Матрос       |  | 
					Регистрация: 04.04.2008 
						Сообщений: 6,246
					 
		
 |  |  
	| телепаты в отпуске |  |  
	| 
		
	| 
			
			 
			
				28.05.2010, 22:59
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 20.07.2009 
						Сообщений: 202
					 
		
 |  |  
	| 
				когда вернться ? XDDD
			 
	
 
	| Код: |  
	| foto (id,user)
golos (id,foto_id,kol,time) |  
	
 
kol - "цена" голоса 1,2,3,4.... 
голосовать можно каждые 8 часов.
 
	
 
	| Код: |  
	| select foto.id,count(kol) from foto
left join  golos on foto.id=golosa.foto_id |  
	
 
	
 
	| Код: |  
	| select foto.id,count(kol) from foto
left join  golos on foto.id=golosa.foto_id and golos.time BETWEEN $t1 and now() |  
	
 
всё работает всё замечателено но хочется одним запросом |  |  
	| 
		
	| 
			
			 
			
				29.05.2010, 08:49
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 20.07.2009 
						Сообщений: 202
					 
		
 |  |  
	| то есть вывод таб1(номер, голоса всего1)
 таб2(номер, голоса всего2)
 надо соединить по номеру и получить
 таб(номер, голоса всего1, голоса всего2)
 |  |  
	| 
		
	| 
			
			 
			
				30.05.2010, 03:58
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 03.04.2009 
						Сообщений: 1,263
					 
		
 |  |  
	| 
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()
 |  |  
	| 
		
	| 
			
			 
			
				30.05.2010, 11:30
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 20.07.2009 
						Сообщений: 202
					 
		
 |  |  
	| 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, 30.05.2010 в 11:35.
 |  |  
	| 
		
	| 
			
			 
			
				30.05.2010, 13:22
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 03.04.2009 
						Сообщений: 1,263
					 
		
 |  |  
	| 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()
 |  |  
	| 
		
	| 
			
			 
			
				31.05.2010, 12:15
			
			
			
		 |  
	| 
		
			
			| Ламер       |  | 
					Регистрация: 19.02.2010 
						Сообщений: 295
					 
		
 |  |  
	| А чем 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()
 |  |  
	| 
		
	| 
			
			 
			
				31.05.2010, 14:14
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 03.04.2009 
						Сообщений: 1,263
					 
		
 |  |  
	| 
DooMer
	
 
	| Сообщение от cuberboy   |  
	| надо соединить по номеру и получить таб(номер, голоса всего1, голоса всего2)
 |  
	
 , и как это сделать с помощью UNION ? |  |  
	| 
		
	| 
			
			 
			
				31.05.2010, 15:57
			
			
			
		 |  
	| 
		
			
			| Ламер       |  | 
					Регистрация: 19.02.2010 
						Сообщений: 295
					 
		
 |  |  
	| ой, чуть не заметил ) виноват |  |  |  |