Sql04 Joins Set Ops Sol
Sql04 Joins Set Ops Sol
-- [3] FETCH ALL THE PRODUCTS WHICH HAVE NOT BEEN ORDERED YET
SELECT
PRODUCT_ID,
PRODUCT_DESC,
PRODUCT_PRICE,
OI.PRODUCT_QUANTITY
FROM PRODUCT
LEFT JOIN ORDER_ITEMS OI USING(PRODUCT_ID)
WHERE OI.PRODUCT_QUANTITY IS NULL;
-- [4] WRITE A QUERY TO FETCH ALL THE PRODUCT CATEGORY DESCRIPTIONS WHOSE AVERAGE
PRICE IS > 5000
SELECT
PR.PRODUCT_CLASS_CODE,
PC.PRODUCT_CLASS_DESC,
AVG(PRODUCT_PRICE) AS AVERAGE_PRODUCT_PRICE
FROM PRODUCT PR
INNER JOIN PRODUCT_CLASS PC USING(PRODUCT_CLASS_CODE)
GROUP BY PRODUCT_CLASS_CODE
HAVING AVERAGE_PRODUCT_PRICE > 5000;
-- [5] WRITE A QUERY TO GET ALL THE COLUMNS AND ROWS FROM BOTH ORDER_HEADER AND
ORDER_ITEMS
-- MySQL SOES NOT SUPPORT FULL OUTER JOIN DIRECTLY INSTEAD IT IS DONE BY USING THE
UNION CLAUSE
SELECT * FROM ORDER_HEADER OH
LEFT JOIN ORDER_ITEMS ON OH.ORDER_ID = ORDER_ITEMS.ORDER_ID
UNION
SELECT * FROM ORDER_HEADER OH
RIGHT JOIN ORDER_ITEMS ON OH.ORDER_ID = ORDER_ITEMS.ORDER_ID;