Страница: 1 | 
		
		 
			   
			 
			 
			 
			 Страница: 1 | 
 
			
 
  
		
     
  
    
Вопрос: count() из 2 связанных таблиц
     
    
Добавлено: 24.05.10 19:12
     
      
  
				
			  
					 
			
				 
    
		
       
    
Автор вопроса:  
     Самат
 Самат
      
       
  
Есть две связанные таблицы. Как взять данные из первой таблицы и количество "детей" к каждой ее строке из второй таблицы?
 
    
Пробовал так: 
SELECT table1.title, count(table2.id) AS child_count FROM table1 INNER JOIN table2 ON table1.id = table2.parent_id GROUP BY table2.id, table1.title 
Но это не подходит, так как если в table2 нет сторк, связанных с table1, то в результате я не получаю child_count со значением 0.
				
		
		
					 
			
				 
  
		
     
  
    
Ответы
     
    
Всего ответов: 4
     
      
  
		
	  
			 
	
		 
    
       
    
Номер ответа: 1 
      
Автор ответа: Sharp
 Sharp










Лидер форума
ICQ: 216865379 
Вопросов: 106
Ответов: 9979
      
 Web-сайт:  
 Профиль |  | #1
      
Добавлено:  24.05.10 23:14
       
    
       
  
left join?
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 2 
      
Автор ответа: Самат
 Самат


Вопросов: 10
Ответов: 17
      
 Профиль |  | #2
       
Добавлено:  25.05.10 09:44
       
    
       
  
Спасибо, попробывал. Но тогда некорректно работает count(). Выводит таблицу, в которой повторяется поле table1.title, a поле child_count у каждой строки либо 0 либо 1.
 
    
Чтобы было понятней, запрос  
SELECT table1.title, count(table2.id) AS child_count 
FROM table1 LEFT JOIN table2 ON table2.parentId = table1.id 
GROUP BY table2.id, table1.title; 
выводит: 
вася, 1;
вася, 1;
вася, 1;
петя, 1;
петя, 1;
маша, 0.
А должен выводить:
вася, 3;
петя, 2;
маша, 0.
		
	  
			 
	
		 
    
       
    
Номер ответа: 3 
      
Автор ответа: Sharp
 Sharp










Лидер форума
ICQ: 216865379 
Вопросов: 106
Ответов: 9979
      
 Web-сайт:  
 Профиль |  | #3
      
Добавлено:  25.05.10 14:30
       
    
       
  
У меня работает
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 4 
      
Автор ответа: Самат
 Самат


Вопросов: 10
Ответов: 17
      
 Профиль |  | #4
       
Добавлено:  27.05.10 11:44
       
    
       
  
спасибо! теперь у меня тоже работает ) 
 
    
Надо было убрать table1.title из запроса.