I solved what I was trying to do eventually with the following SQL - am sure this could be optimized further but it does what I'm after:
Code:
SELECT COUNT(*) as unread, term FROM
(SELECT labelTags.feedId as feedId, labelTags.postId as postId,
labelTags.term as term, labelTags.label as label, readTags.term as readTerm
FROM (SELECT allTags.feedId as feedId, allTags.postId as postId,
allTags.term as term, allTags.label as label FROM (SELECT * FROM Tags
WHERE userId=30 AND term LIKE "label/%" AND postId!="") as allTags
LEFT OUTER JOIN (SELECT * FROM Tags WHERE userId=30 AND
postId="" AND term LIKE "label/%") as folderTags ON
(allTags.feedId=folderTags.feedId AND allTags.term=folderTags.term)
WHERE folderTags.id IS NULL ORDER BY label) as labelTags
LEFT OUTER JOIN Tags as readTags ON labelTags.postId=readTags.postId
AND (readTags.term="state/read" OR readTags.term IS NULL)
WHERE readTerm IS NULL) GROUP BY term
Bookmarks