| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MySQL > Нужен LEFT JOIN без данных |
| Автор: maxipub 15.3.2019, 14:31 | ||
Добрый день!
t.cat_gender ENUM('unisex', 'man', 'woman'); (t.cat_id, t.cat_gender) UNIQUE Запрос возвращает 1 строку если cat_text не джойнится по условию, и до 3 строк - когда есть что джойнить. Мне надо сделать так, чтоб запрос всегда возвращал 3 строки и cat_gender был указан: 123 text_OR_NULL 'unisex' 123 text_OR_NULL 'man' 123 text_OR_NULL 'woman' В общем, чтоб запрос вел себя так, будто к нему INNER JOIN-интся таблица с одним единственным полем cat_gender и тремя записями в нем: 'unisex', 'man', 'woman'. Но без этой таблицы (зачем нам лишние таблицы, если есть вариант без них). Так можно? |
| Автор: ksnk 15.3.2019, 16:17 |
| Без временной таблицы - не знаю как сделать https://www.db-fiddle.com/f/xteXTe18SVzgJjQz7u47wo/1 |
| Автор: maxipub 15.3.2019, 16:44 |
| Жаль... Так понимаю, Вы имели ввиду так: https://www.db-fiddle.com/f/xteXTe18SVzgJjQz7u47wo/2 (INNER вместо LEFT и tmp.cat_gender вместо t.cat_gender) Помню делал что-то вида SELECT t.field, 123 AS val... - когда надо было подставить конкретные данные в выборку. Думал, может и с таблицами как-то так можно. |
| Автор: ksnk 15.3.2019, 23:10 |
| Ну да. Хотя можно и без временной таблицы. SQL велик и в некоторых местах - могуч.... Правда накой такое чудо нужно? https://www.db-fiddle.com/f/xteXTe18SVzgJjQz7u47wo/5 |
| Автор: ksnk 18.3.2019, 12:55 | ||
С реальными задачами может случится много чего. Например, некоторые значения, которые ранее можно было вводить - теперь, в новые формы, вводить уже не нужно. Некоторых значений, которые нужно бы вводить, еще может не быть в базе (только что пришла директива из центра и никто еще не заполнил формы).Так что удобнее и более управляемо, в реальном случае, imho, отдельная таблица-словарь. Ну а самое главное возражение против "давайте все сделаем одним запросом" - это то, что этап выковыривания данных из базы накладывается на этап оформления формы ввода данных. по идее - это 2 разных действия и не нужно их смешивать в одном запросе... Хотя это чистая лирика, если неизвестно накой все это делается.... Вообще-то СТЕ не поможет избавится от 3-х селектов с юнитами, а просто вынесет их в более очевидное место |
| Автор: maxipub 18.3.2019, 14:24 |
Мне подходит. На таком варианте и остановился. Спасибо! Есть 2 пола и унисекс. В ближайшем будущем вряд ли появится что-то еще. Хороший вариант в копилочку. Но не в моем случае, т.к. таблица может быть пустой. |
| Автор: Akina 18.3.2019, 14:59 | ||
А как же none-sex? |
| Автор: maxipub 19.3.2019, 11:39 |
Не знаю что это такое. Типа пол не указан? Интернет-магазин одежды. Выбирается 1 из 3 вариантов. |
| Автор: Akina 19.3.2019, 15:38 |
Ну по смыслу - это то, что не подходит ни мужчинам, ни женщинам... |
| Автор: maxipub 15.4.2019, 12:25 |
| Akina, это идет как unisex. |
| Автор: dorcasmelda 27.5.2020, 09:10 |
Модератор: Сообщение скрыто. |