Ticketa
Registered
Привет, имам следната (скромна) заявка:
Чрез нея извеждам всички налични записи от `posts` и техните преводи в `posts_translate`
Проблема, е че се опитвам да покажа кои записи имат преводи и кои не. За цела трябва (би било хубаво, но не се сещам как) да проверя и кой е езика по подразбиране.
В момента имам следният output:
А трябва да изглежда:
Като се има напредвид, че езика по подразбиране е English.
SQL:
SELECT
GROUP_CONCAT(DISTINCT l2.name ORDER BY l2.name ASC SEPARATOR ', ') AS available_languages,
COALESCE(
GROUP_CONCAT(DISTINCT t.missing_language ORDER BY t.missing_language ASC SEPARATOR ', '),
''
) AS missing_languages
FROM posts p
LEFT JOIN posts_translate pt ON p.post_ID = pt.post_id
INNER JOIN languages l2 ON pt.post_lang = l2.code
LEFT JOIN (
SELECT DISTINCT pt2.post_id, l3.name AS missing_language
FROM posts_translate pt2
CROSS JOIN languages l3
WHERE l3.code NOT IN (SELECT l4.code FROM languages l4 WHERE l4.code = pt2.post_lang)
) t ON pt.post_id = t.post_id
GROUP BY p.post_ID;
Чрез нея извеждам всички налични записи от `posts` и техните преводи в `posts_translate`
Проблема, е че се опитвам да покажа кои записи имат преводи и кои не. За цела трябва (би било хубаво, но не се сещам как) да проверя и кой е езика по подразбиране.
В момента имам следният output:
Код:
Array
(
[0] => Array
(
[available_languages] => Bulgarian, English
[missing_languages] => Bulgarian, English
)
[1] => Array
(
[available_languages] => Bulgarian, English
[missing_languages] => Bulgarian, English
)
[2] => Array
(
[available_languages] => English
[missing_languages] => Bulgarian
)
[3] => Array
(
[available_languages] => English
[missing_languages] => Bulgarian
)
[4] => Array
(
[available_languages] => English
[missing_languages] => Bulgarian
)
[5] => Array
(
[available_languages] => English
[missing_languages] => Bulgarian
)
[6] => Array
(
[available_languages] => English
[missing_languages] => Bulgarian
)
[7] => Array
(
[available_languages] => English
[missing_languages] => Bulgarian
)
[8] => Array
(
[available_languages] => English
[missing_languages] => Bulgarian
)
[9] => Array
(
[available_languages] => English
[missing_languages] => Bulgarian
)
)
А трябва да изглежда:
Код:
Array
(
[0] => Array
(
[available_languages] => English, Bulgarian
[missing_languages] => NULL
)
[1] => Array
(
[available_languages] => English, Bulgarian
[missing_languages] => NULL
)
[2] => Array
(
[available_languages] => English
[missing_languages] => Bulgarian
)
[3] => Array
(
[available_languages] => English
[missing_languages] => Bulgarian
)
[4] => Array
(
[available_languages] => English
[missing_languages] => Bulgarian
)
[5] => Array
(
[available_languages] => English
[missing_languages] => Bulgarian
)
[6] => Array
(
[available_languages] => English
[missing_languages] => Bulgarian
)
[7] => Array
(
[available_languages] => English
[missing_languages] => Bulgarian
)
[8] => Array
(
[available_languages] => English
[missing_languages] => Bulgarian
)
[9] => Array
(
[available_languages] => English
[missing_languages] => Bulgarian
)
)
Като се има напредвид, че езика по подразбиране е English.