|
|
|
Запрос на перевод категорий
|
|||
|---|---|---|---|
|
#18+
Таблицы в базе: 1. categories Поля: id Записи: 1 | 2 | 2. translates Поля: id | category_id | language_id | title Записи: 1 | 1 | 0 | Первая категория 2 | 1 | 1 | First category 3 | 2 | 0 | Вторая категория В первой таблице категории, во второй перевод для категорий. В зависимости от текущего ID языка (language_id) нужно одним запросом выбрать все категории из первой таблицы и переводы для них желательно на яыке 1, но если нет перевода на этом языке то взять название категории с ID языка 0 (который точно будет). Примерно такое: SELECT a.id, b.title from categories a INNER JOIN translates b ON a.id = b.category_id WHERE b.language_id = 1 А_ЕСЛИ_НЕТ_ТО b.language_id = 0 GROUP BY a.id На выводе получить следующее (допустим, надо получить на английском, но если нет перевода то на русском): 1 | First category 2 | Вторая категория Одним запросом возможно выбрать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2015, 10:44:33 |
|
||
|
Запрос на перевод категорий
|
|||
|---|---|---|---|
|
#18+
авторВыбираете b.language_id in (0,1) Так уже делал, две записи захватывает. Чтоб вторую отсечь обязательно нужно подзапрос делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2015, 11:06:02 |
|
||
|
Запрос на перевод категорий
|
|||
|---|---|---|---|
|
#18+
Проще Код: sql 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2015, 11:06:14 |
|
||
|
Запрос на перевод категорий
|
|||
|---|---|---|---|
|
#18+
джойнить по category_id и language_id ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2015, 11:10:02 |
|
||
|
Запрос на перевод категорий
|
|||
|---|---|---|---|
|
#18+
имхо, "банальный" UNION ALL будет лучше Типа Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. или может такой 2-й запрос будет лучше Код: sql 1. 2. 3. 4. 5. 6. пс ТС, в аду, держат отдельную сковородку, "усиленного нагрева", для тех, кто использует GROUP BY без агрегатов ! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2015, 11:13:03 |
|
||
|
Запрос на перевод категорий
|
|||
|---|---|---|---|
|
#18+
или может такой 2-й запрос будет лучше Код: sql 1. 2. 3. 4. 5. 6. Этот не робит. Выводит все категории на языке с ИД 0, кроме той, для которой есть перевод на языке с ИД 1. Первый запрос отрабатывает верно. Но что-то громоздко как-то :/ retvizan Что-то у вас первая таблица вообще никак не фигурирует в запросе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2015, 11:32:17 |
|
||
|
Запрос на перевод категорий
|
|||
|---|---|---|---|
|
#18+
NMFESЭтот не робит. Выводит все категории на языке с ИД 0, кроме той, для которой есть перевод на языке с ИД 1. Я ж написал - это 2-ой запрос в UNION-е, альтернатива запросу с exists в условии Полностью так Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. NMFESНо что-то громоздко как-то :/Это "хреновенький" критерий :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2015, 11:39:40 |
|
||
|
Запрос на перевод категорий
|
|||
|---|---|---|---|
|
#18+
UNION ALL,, Для перфекциониста это даже очень и очень аргумент) 2 селекта и 3 джоина на такую, казалось бы, простую операцию. При выводе чтоли отрезать лишнее через php, а запросом тянуть перевод на обеих языках. Надо подумать. Код: sql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2015, 12:00:38 |
|
||
|
Запрос на перевод категорий
|
|||
|---|---|---|---|
|
#18+
NMFES retvizan Что-то у вас первая таблица вообще никак не фигурирует в запросе. Вы сами писали: NMFESНа выводе получить следующее (допустим, надо получить на английском, но если нет перевода то на русском): 1 | First category 2 | Вторая категория Одним запросом возможно выбрать? А для такого результата первая таблицы не нужна. Если она все-таки вам нужна, то добавьте её. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2015, 12:01:16 |
|
||
|
Запрос на перевод категорий
|
|||
|---|---|---|---|
|
#18+
NMFES UNION ALL,, Для перфекциониста это даже очень и очень аргумент) 2 селекта и 3 джоина на такую, казалось бы, простую операцию. При выводе чтоли отрезать лишнее через php, а запросом тянуть перевод на обеих языках. Надо подумать. Код: sql 1. 2. 3. 4. 5. 6. аа, так вот это ж и есть самый простой вариант Код: sql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2015, 12:06:05 |
|
||
|
Запрос на перевод категорий
|
|||
|---|---|---|---|
|
#18+
UNION ALL,[/src] аа, так вот это ж и есть самый простой вариант Код: sql 1. 2. 3. 4. 5. 6. [/quot] Во-во. Я же чувствую, что тут можно по-проще :D Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2015, 12:10:48 |
|
||
|
|

start [/forum/topic.php?fid=47&tid=1833371]: |
0ms |
get settings: |
5ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
74ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 199ms |
| total: | 347ms |

| 0 / 0 |
