2016-02-21 3 views
1

им с помощью Apache Derby базы данных с открытым исходным кодом, У меня есть две таблицы:Apache Derby SQL - выбрать количество связанных строк между двумя таблицами

ВОПРОСЫ:
Q_id - автоматическое приращение целочисленные
QText - VARCHAR (300)

ОТВЕТ:
a_ID - автоматического приращения целочисленного
Atext - VARCHAR (3 00)
Q_id - FOREIGN KEY число не равно нулю

для каждого вопроса есть более чем один ответ, и это может быть, что вопрос не имеет ответа, так что я хочу сделать, это написать (Apache derby sql) заявление который делает следующее:

для каждого вопроса в таблице ВОПРОСОВ я хочу кол сколько ответов он имеет в ОТВЕТАХ таблицы, наиболее важный для вопроса, который не имеет никаких ответов я хочу результат результата будет 0.

Пример:

SEE EXAMPLE IN THIS PICTURE

Благодаря.

ответ

0
select Questions.QText 
, count(Answers.AText) 
from Questions 
left outer join Answers on Answers.Q_Id = Questions.Q_Id 
group by Questions.QText 

Обновление:

Вы можете использовать MAX по тексту вопроса, который, как вы не должны группе q_text

select Questions.Q_id 
, max(Questions.qtext) 
, COUNT(Answers.q_id) 
from Questions 
left join Answers on Answers.Q_id = Questions.Q_id 
group by Questions.Q_id 
+0

Я не хочу группу по Questions.QText, потому что это может быть duplicated Qtext - это не первичный ключ, ваш ответ работает в этом примере, но я хочу общий, поэтому я попытался изменить select Questions.QText, чтобы выбрать «Вопросы». * - и группировать по Вопросам.Q_id ---- и он не сработал – ssm6366

+0

@ ssm6366 См. обновление, если на этот раз я вас устроил. – artm

+0

Да, теперь это правда, но можете ли вы сказать мне, что такое max (Questions.Qtext) для?, И как это не влияет на дублированный Qtext? – ssm6366