Задать вопрос
@seredaes

Как вывести данные из таблицы MySQL если их нет?

Есть две таблицы

Первая таблица - новости
5a44131032c9c835269840.png

Вторая таблица - языки новости
5a44131e7c89e323163893.png

Как видите, для первой новости на английском языке не задан текст.
Теперь, если сделать следующую выборку по английскому языку

SELECT news.*, news_language.language, news_language.text
FROM news
LEFT JOIN news_language ON news_language.news_id = news.id
WHERE news_language.language = 'en'


Покажет всего одну новость. Это логично например для пользователей. Но в админке должно все вывести.
Подскажите, как верно это делать?

условие:
пользователь может не вводить данные для какого-то языка, например только украинский заполнить, а английский не заполнять.

Я вижу 2 пути:

Первый.
- в PHP проверять языки, и если нет данных, сохранять хотя бы что-то в поле, чтобы оно существовало.

Второй путь - вытягивать без WHERE news_language.language = 'en'.
И потом перебирать массив данных, и если нет данных для какого-то языка, что-то туда подставлять.

Может есть третий вариант или подскажите как решить эту проблему?
  • Вопрос задан
  • 219 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
sabramovskikh
@sabramovskikh
Какая-то надуманная проблема.
Ну нет новости на китайском, оставляйте пусто инпут или пишите что пусто там.
Ответ написан
Проблема явно надуманная

SELECT news.*, news_language.language, news_language.text
FROM news
LEFT JOIN news_language ON news_language.news_id = news.id
WHERE newsnews_language.language = 'en' or news_language.language is null

Не надо добавлять ни чего у тебя же left ну и если тебе так надо то разреши записи без указанного языка, только у меня вопрос если ищешь язык en зачем тебе в выборке новости без языка ?

П.С
Создай триггер на insert новости пусть дефолт вбивает если sql менять не хочешь
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы