Bonjour à tous,
Voici ma requête
J'ai donc deux tables : Files et Tags
Un fichier n'a pas forcément de tag.
Du coups, lorsqu'on fais une requête plus simple du genre on n'a pas les fichiers qui n'ont pas de tags. Exemple :
Du à la liaison entre Tags et Files avec file_id, on se prive des fichiers sans tags.
Donc, ma question ?
Est-ce que vous avez une idée de comment simplifier ma 1er requête ?
Voir même une autre façon de voir les choses ?
Merci d'avance,
Sky
Voici ma requête
Code:
SELECT *
FROM Files F
WHERE
F.dom_id='$domid' &&
(
(
EXISTS (SELECT T.tag_name,T.file_id FROM Tags T WHERE T.tag_name LIKE '%$keywords%')
&&
NOT EXISTS (SELECT T.file_id FROM Tags T WHERE T.file_id=(SELECT T.file_id AS TID FROM Tags T WHERE T.tag_name LIKE '%$keywords%'))
)
||
EXISTS (SELECT T.tag_name,T.file_id FROM Tags T WHERE T.file_id=F.file_id && T.tag_name LIKE '%$keywords%')
||
(F.file_name LIKE '%$keywords%' || F.file_description LIKE '%$keywords%')
)
J'ai donc deux tables : Files et Tags
Un fichier n'a pas forcément de tag.
Du coups, lorsqu'on fais une requête plus simple du genre on n'a pas les fichiers qui n'ont pas de tags. Exemple :
Code:
SELECT * FROM Files F, Tags T
WHERE F.dom_id='$domid'
&& (
(F.file_name lIKE '%$keywords%' || F.file_description lIKE '%$keywords%')
||
(T.tag_name lIKE '%$keywords%' && F.file_id=T.file_id)
)
Donc, ma question ?
Est-ce que vous avez une idée de comment simplifier ma 1er requête ?
Voir même une autre façon de voir les choses ?
Merci d'avance,
Sky