Efficiently Finding Supersets In MySQL Vs SPL
MySQL database has tables for bags & item relationships. Finding supersets requires complex SQL queries with JOINs & EXISTS. SPL simplifies this using 2-layer loops & intuitive set operations.
The MySQL database has two tables: bag table and bag item relationship table. Some bags are supersets of other bags.
bag
bag_item
Now we need to find the superset for each bag:
SQL:
SELECT
base.id AS base_bag_id,
s.id AS superset_bag_id
FROM bag base
JOIN bag s
ON s.id <> base.id
AND NOT EXiSTS (SELECT 1
FROM bag_item bi
WHERE bi.bag_id = base.id
AND NOT EXISTS (SELECT 1
FROM bag_item si
WHERE si.item_id = bi.item_id
AND si.bag_id = s.id
)
);
Two layers of loop traversal are required here, and SQL requires thr...