MySql Есть две таблицы:
table1 с полями id integer primary key, field - varchar(20) not null .
CREATE TABLE `table1`
( id INTEGER PRIMARY KEY,
field VARCHAR(20) NOT NULL
);
table2 с полями t1_id integer not null, table2_field varchar(20) not null.
CREATE TABLE `table2`
(t1_id INTEGER NOT NULL,
table2_field VARCHAR(20) NOT NULL,
FOREIGN KEY (t1_id) REFERENCES table1(id) ON DELETE CASCADE);
Заносим данные:
INSERT INTO `table1` VALUES (1,'table1_field1');
INSERT INTO `table1` VALUES (2,'table1_field2');
INSERT INTO `table2` VALUES (1,'table2_field');
Запрос:
SELECT t1.id, t1.field, t2.`table2_field` from `table1` t1
LEFT JOIN `table2` t2
ON t1.id = t2.`t1_id` ORDER BY t1.id;
Получается вот такой результат:
id field table2_field
1 table1_field1 table2_field
2 table1_field2 NULL
Как нужно сформировать запрос , чтобы получить
id field table2_field
1 table1_field1 table2_field
2 table1_field2 "Пусто"
т.е чтобы слово добавить "Пусто" вместо NULL ?
SELECT t1.id, t1.field, COALESCE(t2.`table2_field`,'"Пусто"')
Для Oracle, если вдруг..)
SELECT t1.id, t1.field, NVL(t2.`table2_field`, 'Пусто') from `table1` t1
LEFT JOIN `table2` t2
ON t1.id = t2.`t1_id` ORDER BY t1.id;
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости