Задавайте вопросы, мы ответим
Вы не зашли.
Страниц: 1
Добрый день всем))
Нужна ваша помощь.... Есть таблица:
----------------------------------------
| id | title | lenguage_id|
|----------------------|
|1 | н1 | 3 |
|-----------------------
|2 | н2 | 3 |
|-----------------------
|1 | рус | 1 |
|-----------------------
Если текущий язык на сайте русский(то есть lenguage_id = 1) Нужно вытянуть последнее значение + 2 поле, но если английский (lenguage_id = 3), то первые два значения.
То есть, вытянуть все уникальные id, делая приоритет в выборке текущему языку.
Пробовал так ( SELECT * FROM table WHERE lenguage_id = cur_leng OR lenguage_id = default_leng GROUP BY id) - но так вытягивает и русские и английские, просто опускает нижние, вытянутые значения. Пробовал так:
SELECT * FROM table WHERE lenguage_id = cur_leng
UNION
SELECT * FROM table WHERE lenguage_id = default_leng
так тоже не выходит ...
Отредактированно bombascter (19.10.2012 11:07:29)
Неактивен
Неактивен
vasya написал:
SELECT t.* FROM `table` t JOIN
(SELECT id, SUBSTR(MAX(CONCAT(IF(lenguage_id=cur_leng,1,0), lenguage_id)), 2) lenguage_id FROM `table` GROUP BY id) t1
USING(id,lenguage_id);
Спасибо)) А можно расшифровать?! Буду очень признателен!!
Неактивен
Неактивен
vasya написал:
Спасибо большое) Есть добрые люди))
Неактивен
Страниц: 1