Я могу получить левое соединение со следующим оператором mysql: Определение полей таблицы:
show columns from back;
+-------------------------+------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------------------+------------+------+-----+---------+-------+
| code | text | YES | | NULL | |
| report_date | varchar(4) | YES | | NULL | |
| total_operating_revenue | double | YES | | NULL | |
+-------------------------+------------+------+-----+---------+-------+
3 rows in set (0.01 sec)
Я загрузил таблицу в dropbox
Скачать заднюю таблицу для тест mysql оператор
Мой запрос.
select * from ((
select * from back
) a
left join(
select * from back
) b on a.report_date = b.report_date + 1
and a.code = b.code);
Теперь я хочу переписать его как create table
выражение:
create table result as((
select * from back
) a
left join(
select * from back
) b on a.report_date = b.report_date + 1
and a.code = b.code);
Я столкнулся с проблемой:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '(
select * from back
) a
left join(
select * from back ' at line 1
Как написать таблицу создания оператор, который содержит левое соединение?
@ Barmar, оба метода сталкиваются с одной и той же ошибкой: ОШИБКА 1060 (42S21): повторяющееся имя столбца 'code'
MariaDB [finance]> create table result as(
-> select * from ((
-> select * from back
-> ) a
-> left join(
-> select * from back
-> ) b on a.report_date = b.report_date + 1
-> and a.code = b.code));
ОШИБКА 1060 (42S21): дублирующееся имя столбца ' код '
Второй способ:
MariaDB [finance]> CREATE TABLE result AS
-> SELECT *
-> FROM back AS a
-> LEFT JOIN back AS b ON a.report_date = b.report_date + 1 AND a.code = b.code;
ERROR 1060 (42S21): Duplicate column name 'code'
Моя последняя попытка:
create table result as
select a.code,a.report_date,a.total_operating_revenue,b.code,b.report_date,b.total_operating_revenue from (
select a.code,a.report_date,a.total_operating_revenue from back
) a
left join(
select b.code,b.report_date,b.total_operating_revenue from back
) b on a.report_date = b.report_date + 1
and a.code = b.code;
Неизвестная ошибка столбца:
ERROR 1054 (42S22): Unknown column 'a.code' in 'field list'