Où est-ce que ma requête SQL coince ?

Résolu/Fermé
Whorus - 31 déc. 2010 à 18:11
 Whorus - 31 déc. 2010 à 18:52
Bonjour à tous,

Je sollicite votre aide en cette fin d'année car j'ai besoin de créer une requête pour mon site et je ne comprends pas l'erreur retournée. Mon site gère des hôtels et j'ai besoin d'une requête SQL qui me retourne les chambres encore libres en laissant de côté celles occupées à une date valide. Voici comment j'ai procédé :

SELECT r.resourceid, name,
IF('2010-12-15' >= of.datebegin AND '2010-12-22' <= of.dateend, of.price, r.price) as price
FROM wp_res_orders o
INNER JOIN wp_res_orders_content oc ON (o.orderid = oc.orderid)
RIGHT JOIN wp_res_resources r ON (oc.resourceid = r.resourceid)
LEFT JOIN wp_res_offers of ON ( of.resourceid = r.resourceid)
WHERE capacity > 0
AND (('2010-12-15' < o.datebegin AND '2010-12-22' < o.datebegin)
OR ('2010-12-15' > o.dateend AND '2010-12-22' > o.dateend) OR (o.datebegin IS NULL AND o.dateend IS NULL))
AND r.resourceid NOT IN (
SELECT ord.datebegin, ord.dateend
FROM wp_res_orders ord
INNER JOIN wp_res_orders_content oct ON (ord.orderid = oct.orderid)
WHERE ord.datebegin = '2010-12-15' AND ord.dateend = '2010-12-22' )
ORDER BY 1;


L'erreur retourné dans MySQL est "#1241 - Operand should contain 1 column(s)". Je sais que l'erreur se situe au niveau de la sous-requête car auparavant la requête était fonctionnelle mais je me suis aperçu qu'elle ne permettait pas de se prémunir contre les double réservations sur une même chambre...

L'un de vous pourrait-il m'indiquer où j'ai fait une erreur de syntaxe ?

Merci beaucoup !

1 réponse

jee pee Messages postés 40671 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 12 janvier 2025 9 489
31 déc. 2010 à 18:17
Salut,

une suggestion

AND r.resourceid NOT IN (
SELECT ord.datebegin, ord.dateend


Le select ne devrait contenir qu'une seule colonne.

Et es tu sur que les champs sont de meme nature ? un id et des dates ???

cdlt
1
Arf oui j'avais pas du ce "one column" dans ce sens là, je cherchais plutôt avec des histoires de parenthèses...

Merci énormément !
0