ОШИБКА СИНТАКСА ЗАЯВЛЕНИЯ MYSQL - PullRequest
0 голосов
/ 19 сентября 2009

Я собираюсь потерять его из-за этого глупого заявления mysql.Может кто-нибудь, пожалуйста, скажите мне, что не так с этим утверждением, пожалуйста?

SELECT * FROM contacts 
INNER JOIN ind_categories ON contacts.vendor_id = ind_categories.vendor_id AND ind_categories.category_id = "retail" 
AND WHERE zipcode in ( " 93044,93041,93043 " )

Ответы [ 3 ]

3 голосов
/ 19 сентября 2009
SELECT * FROM contacts 
INNER JOIN ind_categories 
   ON contacts.vendor_id = ind_categories.vendor_id AND ind_categories.category_id = "retail" -- AND   <<< removed !
WHERE zipcode in ('93044' ,'93041' ,'93043' )   -- <<<<  changed the in clause

Что не так?

  • дополнительно И перед предложением WHERE: синтаксически неверно
  • использование двойных кавычек, при этом строковая переменная требует одинарных кавычек
  • В операторе IN отдельные значения почтового индекса должны были выражаться индивидуально в виде строки, а не одной большой строки.
3 голосов
/ 19 сентября 2009

Попробуйте:

SELECT * FROM contacts INNER JOIN ind_categories ON contacts.vendor_id = ind_categories.vendor_id AND ind_categories.category_id = 'retail' WHERE zipcode in 
('93044','93041','93043')

Вы не должны иметь AND перед вашим WHERE, каждый элемент set в предложении IN должен заключаться в кавычки отдельно (если это текстовый столбец или вообще не заключаться в кавычки, если это столбец числа), и ваши кавычки должны быть одинарными .

1 голос
/ 19 сентября 2009

Попробуйте:

SELECT * FROM contacts 
INNER JOIN ind_categories 
   ON contacts.vendor_id = ind_categories.vendor_id 
      AND ind_categories.category_id = 'retail'
WHERE zipcode IN ('93044','93041','93043')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...