-- pk# are all primary keys
-- fk# is a foreign key on pk#
-- mappingstable will have lots of entries for each row in table1
CREATE TABLE table1 (
pk1 SERIAL,
property1 INT
)
;
CREATE TABLE table2 (
pk2 SERIAL,
fk1 INT,
property2 INT
)
;
CREATE TABLE mappingstable (
fk1 INT,
property3 INT,
num FLOAT
)
;And now I want to do this select (this is massively over simplified, but shows the point of the question):
Code:
SELECT
SUM(mappingstable.num)
FROM
table1
INNER JOIN
table2
ON
table2.fk1 = table1.pk1
INNER JOIN
mappingstable
ON
mappingstable.fk1 = table1.pk1
WHERE
mappingstable.property3 in (1,4,2,6)
AND
table1.property1 = 2
AND
table2.property2 = 3
GROUP BY
table1.pk1
http://www.mixjeux.com/