Помогите с запросом

Cruiser

Новичок
Помогите с запросом

Мне надо в запросе проверить что, если значение pole3 в table1 равно 1 то искать текст по pole1 в table1, а если НЕ равно то искать по pole2.
Т.е. if(pole1 == 1){ where pole1 = 'text';} else { where pole2 = 'text';}
Думаю, смысл ясен.
 

Cruiser

Новичок
Спасибо.

Посложнее запрос.
Есть таблицы tovar synonyms
В tovar поля tovar_id, name, synonym (значения 0 или 1)
В synonyms поля tovar_id, synonym_id
Надо проверить tovar.name = 'text' и если поле tovar.synonym = 0 то просто выбрать все поля .
А если это синоним и tovar.name = 'text' то сделать запрос к таблице synonyms, получить значение synonyms.tovar_id, где tovar.tovar_id = synonyms.synonym_id и выбрать из таблицы tovar уже все поля где tovar.tovar_id = synonyms.tovar_id

Вот такая петля должна получиться.
 

chira

Новичок
FROM tovar t
LEFT JOIN synonyms s ON tovar.synonym = 1 AND t.tovar_id = s.synonym_id
LEFT JOIN tovar t2 ON t2.tovar_id = s.tovar_id

посмотри чего выдаст SELECT
 

Cruiser

Новичок
SELECT ничего не возвращает.
У меня там еще внешние INNER идут т.е. весь запрос такой:

FROM currencies INNER JOIN (ei INNER JOIN (tovar t
LEFT JOIN synonyms s ON tovar.synonym = 1 AND t.tovar_id = s.synonym_id
LEFT JOIN tovar t2 ON t2.tovar_id = s.tovar_id) ON ei.id = tovar.base_unit) ON currencies.id = pricelist.currency

Синтаксис правильный?
 
Сверху