Add {filename} for Tutorium 4
This commit is contained in:
61
Tutorium_4_relationship in physical model
Normal file
61
Tutorium_4_relationship in physical model
Normal file
@@ -0,0 +1,61 @@
|
||||
-- Example 1-to-1 relationship
|
||||
-- PK cntry.code is FK ppl.country
|
||||
SELECT cntry."name"
|
||||
,cntry.capital
|
||||
,ppl.population_growth
|
||||
FROM "IDBS01_Q12025"."Country" cntry
|
||||
INNER JOIN "IDBS01_Q12025"."Population" as ppl
|
||||
ON cntry.code = ppl.country
|
||||
limit 10;
|
||||
|
||||
|
||||
-- Example 1-to-CN relationship
|
||||
-- PK cntry.code is FK brd.country1
|
||||
-- without mapping table
|
||||
SELECT *
|
||||
FROM "IDBS01_Q12025"."Country" cntry
|
||||
FULL OUTER JOIN "IDBS01_Q12025".borders brd
|
||||
ON cntry.code = brd.country1
|
||||
WHERE 1 = 1
|
||||
--AND brd.country1 IS NULL
|
||||
AND cntry.code IS NULL
|
||||
limit 10;
|
||||
|
||||
-- Example 1-to-CN relationship
|
||||
--how to check if it is a 1-to-N relationship
|
||||
|
||||
SELECT *
|
||||
FROM "IDBS01_Q12025"."Country" cntry
|
||||
LEFT JOIN "IDBS01_Q12025"."geo_Desert" gdsrt
|
||||
ON cntry.code = gdsrt.country
|
||||
LEFT JOIN "IDBS01_Q12025"."Desert" dsrt
|
||||
ON gdsrt.desert = dsrt."name"
|
||||
limit 10;
|
||||
|
||||
|
||||
--Example N-to-CM relationship
|
||||
--with mapping table to N created by provicence
|
||||
|
||||
SELECT gm.mountain
|
||||
,count (1) AS Anzahl
|
||||
FROM "IDBS01_Q12025"."Country" cntry
|
||||
LEFT JOIN "IDBS01_Q12025"."geo_Mountain" gm
|
||||
ON cntry.code = gm.country
|
||||
group by gm.mountain
|
||||
having count(1) > 1
|
||||
order by 2 desc
|
||||
;
|
||||
|
||||
SELECT *
|
||||
FROM "IDBS01_Q12025"."geo_Mountain"
|
||||
WHERE "geo_Mountain".mountain = 'Popocatepetl'
|
||||
limit 10;
|
||||
|
||||
SELECT *
|
||||
FROM "IDBS01_Q12025"."Country" cntry
|
||||
INNER JOIN "IDBS01_Q12025"."Province" prv
|
||||
ON cntry.code = prv.country
|
||||
LEFT OUTER JOIN "IDBS01_Q12025"."geo_Mountain" gm
|
||||
ON prv.country = gm.country
|
||||
AND prv."name" = gm.province
|
||||
limit 10;
|
||||
Reference in New Issue
Block a user