Если вы хотите получить один элемент по имени строки и столбцу, вы можете сделать это так же, как df['b'][0]
. Это так же просто, как вы можете изобразить.
Или вы можете использовать df.ix[0,'b']
, смешанное использование индекса и метки.
Примечание: Поскольку v0.20 ix
устарел в пользу loc
/ iloc
.
Есть несколько возможных вариантов, один из них:
SELECT * ,
(SELECT count(*)
FROM `table_votes`
WHERE `children`.`id` = `table_votes`.`child_id`) AS `Count`
FROM `children`
WHERE `parent_id` = 20
Вы также можете использовать свой запрос, но вам нужно будет добавить GROUP BY
:
SELECT
`children`.`id`,
`children`.`data`,
`children`.`parent_id`,
`children`.`timestamp`,
COUNT(`v`.`children_id`)
FROM `children` LEFT JOIN `table_votes` `v` ON `children`.`id` = `v`.`child_id`
WHERE `children`.`parent_id` = 20
GROUP BY `children`.`id`, `children`.`data`, `children`.`parent_id`, `children`.`timestamp`,
ORDER BY `timestamp` ASC
1) решение с подселекцией:
SELECT
children.id,
children.data,
children.parent_id,
children.timestamp,
(select count(*) from table_votes children.id = table_votes.child_id) as cntVotes
FROM
children
WHERE
children.parent_id = 20
ORDER BY
children.timestamp ASC
2) решение с группой:
SELECT
children.id,
children.data,
children.parent_id,
children.timestamp,
count(table_votes.id) as cntVotes
FROM
children
LEFT JOIN
table_votes ON children.id = v.child_id
WHERE
children.parent_id = 20
GROUP BY
children.id,
children.data,
children.parent_id,
children.timestamp
ORDER BY
children.timestamp ASC
Я не уверен, правильно ли я понимаю ваш вопрос, но для меня кажется, что вы хотите подсчитать количество детей в таблицах_votes, а не у детей. попробуйте следующее:
select id, data, parent_id, timestamp, child_id
from table_votes join children on children_id.id = table_vote.child_id
where child_id = (select count(child_id) from table_vote)
and parent_id = '20'