Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- SQL - Confusing Query
- photoID (INT), setID (INT)....
- 18900 , 234 , ...
- 18901 , 234 , ...
- 18902 , 234 , ...
- 18903 , 249 , ...
- 18904 , 249 , ...
- 18905 , 249 , ...
- photoID (INT), keywordID (INT)
- 18900 , 12
- 18900 , 21
- 18901 , 17
- 18905 , 26
- 18905 , 10
- SELECT X.photoID FROM photos X
- INNER JOIN
- (SELECT DISTINCT P.setID FROM
- photos P
- LEFT OUTER JOIN (SELECT K.photoID, COUNT(*) C FROM photoKeyword K GROUP BY K.photoID) KC ON KC.photoID = P.photoID
- GROUP BY P.setID
- HAVING SUM (KC.C) < 1) Y ON X.setID = Y.SetID
- SELECT photoID
- , setID
- FROM photos
- WHERE photoID NOT IN
- ( SELECT photoID
- FROM photoKeyword
- )
- AND setID =
- ( SELECT setID
- FROM photos
- WHERE photoID NOT IN
- ( SELECT photoID
- FROM photoKeyword
- )
- ORDER BY setID
- LIMIT 1
- )
- select
- p.PhotoID,
- p.SetID
- from
- Photos p
- LEFT JOIN photoKeyword pkey
- on p.PhotoID = pkey.PhotoID
- where
- pkey.PhotoID = null
- SELECT p.setID, GROUP_CONCAT(p.photoID ORDER BY p.photoID) AS photoIDs
- FROM photos p
- JOIN photoKeyword k USING (photoID)
- WHERE k.photoID IS NULL
- GROUP BY 1
- LIMIT 1
Add Comment
Please, Sign In to add comment