2010-06-25 3 views
0

Bonjour je suis un peu un newb quand il s'agit de mysql je cours une requête et je reçois l'erreur suivante, à ma connaissance la syntaxe de la requête est correcte (obvioulsy pas si) c'est l'erreur que je reçois,erreur mysql N'EST PAS une utilisation correcte?

#1064 - 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 'FAIL' AND `mc_subscriber.email` = 
`mc_user.email`' at line 1 

mon mysql ressemble à ceci,

SELECT `mc_subscriber.email`, `mc_user.firstname`, `mc_user.lastname` FROM `subscriber`, `user` WHERE `mc_subscriber.status` = 'SUBSCRIBED` AND `mc_subscriber.status_mx` IS NOT = 'FAIL' AND `mc_subscriber.email` = `mc_user.email`; 

Je pense que j'utiliserai ne se trompe pas, j'essaie d'ajouter un condtion qui recherche toute la ligne où le mx_status ne correspond pas à l'échec.

Répondre

0

Tables appelées subscriber et user Tableau des étiquettes de mc_subscriber et mc_user Suis-je juste d'être dense, ou est-il un mécanisme MySQL sophistiqué qui autocorrelates la table d'abonnés avec l'étiquette de mc_subscriber?

Et je pensais que si vous avez utilisé backticks dans `mc_subscriber.email`, puis doivent être individuellement backticked à la fois la table et la colonne que `mc_subscriber`.`email`

1

Il doit être: WHERE NOT colonne = valeur

donc: NON mc_subscriber.status_mx = 'FAIL'

modifier: Cela fonctionne dans PostgreSQL au moins

Edit2:

Je n » t utiliser cette syntaxe dans votre cas, à la place, j'irais avec mc_subscriber.status_mx! = 'FAIL' et utiliser la colonne "NOT column" sur les colonnes booléennes seulement. (Il pourrait être <> au lieu de! = Dans MySQLs cas ne savent pas sûr)

1
SELECT `mc_subscriber.email`, `mc_user.firstname`, `mc_user.lastname` FROM `subscriber` WHERE `mc_subscriber.status` = `SUBSCRIBED` AND `mc_subscriber.status_mx` IS NOT = `FAIL` AND `mc_subscriber.email` = `mc_user.email`; 

il y a que Give.

On dirait que vous enveloppait avec il cite incorrectes, vous ne devez vraiment utiliser qoutes où « l'envoi » en tant que chaîne tels que

SELECT * FROM table WHERE somecolumn = '<Some String>' and someint = 1; 

le qoutes '' ne sont pas vraiment nécessaires dans les colonnes

également si vos ayant des problèmes avec la section essayer IS NOT = 'FAIL' changer à UPPER(mc_subscriber.status_mx) != 'FAIL'

paix et beaucoup d'amour :)