statement over meerdere rijen (EXISTS?)
rudie dirkx
13/06/2007 22:21:00Heb drie tabellen:
tags: id, tag
urls: id, url, title
links: tag_id, url_id
en wil alle urls ophalen die zowel in tag A zitten, als tag B.
Dus niet een OR, maar een AND.
Een AND gaat echter niet, omdat je dan zegt dat zoiets moet: X=Y AND X=Z en dat kan niet want Y!=Z... Logisch.
Een OR is makkelijk:
Die OR vervangen door AND werkt dus niet :(
Het kan ook niet (denk ik) met een subquery, want misschien moeten de urls wel aan 3 voorwaarden tags voldoen (ipv 2 of 1). En misschien wel aan 6.
Ik wil dus alle rijen ophalen van urls die aan tags A EN B worden gekoppeld. Niet die aan A OF B gekoppeld worden.
Mijn dank is groot
tags: id, tag
urls: id, url, title
links: tag_id, url_id
en wil alle urls ophalen die zowel in tag A zitten, als tag B.
Dus niet een OR, maar een AND.
Een AND gaat echter niet, omdat je dan zegt dat zoiets moet: X=Y AND X=Z en dat kan niet want Y!=Z... Logisch.
Een OR is makkelijk:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
SELECT
DISTINCT l_urls.*,
l_links.utc_added
FROM
l_links,
l_tags,
l_urls
WHERE
(l_links.tag_id = l_tags.id) AND
(l_links.url_id = l_urls.id) AND
(l_tags.tag = 'images' OR l_tags.tag = 'fun')
ORDER BY
l_links.utc_added DESC;
DISTINCT l_urls.*,
l_links.utc_added
FROM
l_links,
l_tags,
l_urls
WHERE
(l_links.tag_id = l_tags.id) AND
(l_links.url_id = l_urls.id) AND
(l_tags.tag = 'images' OR l_tags.tag = 'fun')
ORDER BY
l_links.utc_added DESC;
Die OR vervangen door AND werkt dus niet :(
Het kan ook niet (denk ik) met een subquery, want misschien moeten de urls wel aan 3 voorwaarden tags voldoen (ipv 2 of 1). En misschien wel aan 6.
Ik wil dus alle rijen ophalen van urls die aan tags A EN B worden gekoppeld. Niet die aan A OF B gekoppeld worden.
Mijn dank is groot
Er zijn nog geen reacties op dit bericht.