Skip to content

Instantly share code, notes, and snippets.

@MarkyC
Last active December 15, 2015 08:49
Show Gist options
  • Select an option

  • Save MarkyC/5233719 to your computer and use it in GitHub Desktop.

Select an option

Save MarkyC/5233719 to your computer and use it in GitHub Desktop.
Select all cities were no one in the city has purchased a book in French
-- Returns CID's of customers that have never purchased a book in French
-- I need something like
-- SELECT C3.city FROM yrb_customer C WHERE c3.cid = c2.cid
-- (this doesn't work though)
SELECT DISTINCT C2.cid
FROM
yrb_customer C2,
yrb_purchase P,
yrb_book B
WHERE
P.cid = C2.cid AND
P.title = B.title AND
P.year = B.year
EXCEPT
SELECT DISTINCT C.cid
FROM
yrb_customer C,
yrb_purchase P,
yrb_book B
WHERE
P.cid = C.cid AND
P.title = B.title AND
P.year = B.year AND
B.language = 'French';
@MarkyC
Copy link
Copy Markdown
Author

MarkyC commented Mar 24, 2013

Error:

SELECT DISTINCT C.city FROM yrb_customer C, WHERE C.cid NOT IN ( SELECT C2.cid FROM yrb_customer C2, yrb_purchase P, yrb_book B WHERE P.cid = C2.cid AND P.title = B.title AND P.year = B.year AND B.language = 'French')
SQL0104N An unexpected token "." was found following "_customer C, WHERE C".
Expected tokens may include: "HAVING". SQLSTATE=42601

@MarkyC
Copy link
Copy Markdown
Author

MarkyC commented Mar 24, 2013

SELECT DISTINCT C3.city 
FROM (
    SELECT DISTINCT C2.cid
    FROM
        yrb_customer C2,
        yrb_purchase P, 
        yrb_book B
    WHERE 
        P.cid = C2.cid AND 
        P.title = B.title AND
        P.year = B.year
    EXCEPT
    SELECT DISTINCT C.cid
    FROM
        yrb_customer C,
        yrb_purchase P, 
        yrb_book B
    WHERE 
        P.cid = C.cid AND 
        P.title = B.title AND
        P.year = B.year AND
        B.language = 'French';
) AS Customer
JOIN yrb_customer C3 ON C3.cid = Customer.cid;

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment