Можно ли даже заказать родительский стол по дочернему столу? Скажем, у меня есть person_ID (из родительской таблицы), что person_ID получит много голосов в дочерней таблице. Так много голосов может быть в дочерней таблице для одного person_id в родительской таблице. Голоса могут быть +1 или -1. Таким образом, если person_ID = 001 получает 5 х (+1 голос) и 2 х (-1 голос). person_ID = 001 будет иметь общий балл +3. И скажем, у person_ID = 002 было 3 x (-1) голоса Person_ID = 002 будет иметь оценку -3. Person_ID = 003 имеет балл 0.
Теперь допустим, что я хочу ЗАКАЗАТЬ родительскую таблицу по общему баллу из дочерней таблицы.
Я знаю, как суммировать дочернюю таблицу, но теперь мне нужно упорядочить родительскую таблицу на основе результатов дочерней таблицы.
SELECT
parent_id2,
SUM (votes) AS total
FROM childtbl GROUP BY parent_id2
ORDER BY total DESC
Я хочу, чтобы результат запроса выглядел следующим образом
Person_ID 001 | + 3
Person_ID 003 | 0
Person_ID 002 | -3
Вот ссылка на SQL Fiddle. http://www.sqlfiddle.com/#! 17 / ea694 / 6
Вот код, если он испортился
CREATE TABLE parenttbl
(
parent_id integer,
test character(25),
test2 character(25),
PRIMARY KEY (parent_id)
);
INSERT INTO parenttbl (parent_id, test, test2) VALUES (1,'adam','test'), (2,'steven','test'), (3, 'bob','test');
CREATE TABLE childtbl
(
child_id integer,
parent_id2 integer,
votes integer,
PRIMARY KEY (child_id),
FOREIGN KEY (parent_id2)
REFERENCES parenttbl (parent_id) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
);
INSERT INTO childtbl (child_id, parent_id2, votes) VALUES (1,1,1), (2,1,1), (3, 1, 1),(4,1,-1), (5,2,1), (6, 2, 1),(7,3,-1), (8,3,-1), (9, 3, -1),(10, 1, 1),(11,3,1),(12,3,1),(13,3,1)
Спасибо, ребята!