выбрать другую, нужно это для языков, к примеру пользователь запрашивает новости на английском, но такой нет, а есть на русском, значит выбрать ее на русском?
перепробовал or но тогда идет выборка 2-х сразу если есть на обеих языках, с условием case тоже выбирает сразу обе или вообще ничего…
Пробуешь выбрать на первом, если нет записи Делаешь выборку ВТОРОЙ раз на другом языке
1 запросом нужно сделать
Какая структура бд?
news: id, language_id, content, created_at, updated_at languages: id. name, code, created_at, updated_at
потому что в коде 100500 условий не хочу городить, да и если нужно будет это делать в разных местах и для разных механизмов, это будет дублироваться
Хм, а где общий идентификатор для новости?
Я вижу у новости id языка, но не вижу связующую таблицу
join по дефолтному языку и coalese в селекте?))
это пример просто, реальная бд очень сложная, и описать ее тут не представляется возможным, тут не в том делал какая бд, а сам механизм таких запросов. в каждой из таблиц (берем условно любую какую придумам) в этой таблице есть поле которое указывает на каком языке данная запись language_id таких записей может быть от одной до столько сколько языков на сайте, и нужно сделать так чтоб при выборке на каком-то языке на котором нету записи, выбрать запись под под любым id из базы languages или дефолтный если такое поле есть в таблице языком, но это уже полет фантазий как там и что будет, главное как делать выборки выбрать что-то, а если этого нет выбираем другое, и самое главное если есть записи на всех языках выбрать только ту на которой выбирается
Обсуждают сегодня