2011-10-05 6 views
0

J'ai une requête deAjout de longue requête compliquée

Select 
cards.card_id, 
    cards.item_name, 
    cards.meta_description, 
    cards.description, 
    '' as Weight, 
    '' as UPC, 
    '' as Part, 
    cards.seo_keywords, 
    concat('',cards.card_id,'_shadow.png') AS ImageURL, 
    lookup_details.value, 
    concat('ARTIST - ', card_import.artist) AS Brand, 
replace(lower(concat('http://www.test.com/', pcat.seoname,'/',cat.seoname, '/', cards.seoname, '.htm')),' ','+') AS link, 
      concat(pcat.name,' > ',cat.name) as Merchant, 
round(min(card_lookup_values.card_price), 2) AS 'price', 
min(cast(lookup_details.value as signed)) as 'quantity' 

FROM 
    cards 
    left join card_import on card_import.card_id = cards.card_id 
    join card_lookup_values on card_lookup_values.card_id = cards.card_id 
      INNER JOIN card_categories cc ON cards.card_id = cc.card_id AND cards.card_live = 'y' AND cards.active = 'y' AND cc.active = 'Y' 
      INNER JOIN categories cat ON cat.category_id = cc.category_id AND cat.active = 'Y' 
      INNER JOIN categories pcat ON cat.parent_category_id = pcat.category_id 
INNER JOIN card_lookup_values as card_values ON cards.card_id = card_values.card_id 
INNER JOIN lookup_details ON card_lookup_values.lookup_detail_id = lookup_details.lookup_detail_id 

WHERE card_lookup_values.lookup_id = 7,lookup_details.lookup_id= 40 
GROUP BY 
    cards.card_id 
ORDER BY 
    cards.card_id 

Je pense que j'ai tout mis à droite, mais je continue à obtenir une erreur dans Navicat qui dit que j'ai une erreur près **

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'lookup_details.lookup_id= 40 
GROUP BY 
    cards.card_id 
ORDER BY 
    cards.card_' at line 28 

**

Ai-je manqué quelque chose?

+0

N'avez-vous pas besoin d'un opérateur booléen entre ces deux éléments dans votre clause "where"? OERE card_lookup_values.lookup_id = 7, lookup_details.lookup_id = 40 – bleeeah

+0

Je pourrais avoir à obtenir un de ces bavoirs personnalisés - je suis un mangeur désordonné! - * "Recule s'il te plait, programmeur en train de manger." * – RedFilter

+0

Wow. 7 réponses en moins d'une minute (en comptant le commentaire), et tous ont obtenu ça. C'est comme un peloton d'exécution. Les erreurs triviales ne devraient pas se rapprocher d'ici. –

Répondre

3

Vous voulez ET et OU (selon le cas) vos conditions WHERE ensemble.

... 
WHERE card_lookup_values.lookup_id = 7 AND lookup_details.lookup_id= 40 
... 

... 
WHERE card_lookup_values.lookup_id = 7 OR lookup_details.lookup_id= 40 
... 
0

syntaxe SQL utilise le mot-clé AND dans une clause WHERE.

WHERE blahblah = blah AND trala = la 
0
WHERE card_lookup_values.lookup_id = 7,lookup_details.lookup_id= 40 

devrait être

WHERE card_lookup_values.lookup_id = 7 AND lookup_details.lookup_id= 40 

ne pas oublier le point-virgule à la fin aussi!

0

changez cette ligne

WHERE card_lookup_values.lookup_id = 7,lookup_details.lookup_id= 40 

à cette

WHERE card_lookup_values.lookup_id = 7 and lookup_details.lookup_id= 40 
1

vous ayiez une virgule supplémentaire

WHERE card_lookup_values.lookup_id = 7,lookup_details.lookup_id= 40 

devrait être

WHERE card_lookup_values.lookup_id = 7 AND lookup_details.lookup_id= 40