我正在学习一些SQL语句,我看不出为什么我的代码无法从我的数据库中执行:
(SELECT Time FROM mytable)
UNION
(SELECT Travel FROM mytable);
以上陈述是被禁止的。
答案 0 :(得分:1)
它看起来不像名为Time
的列和Travel
具有相同的数据类型...当您UNION
两个select语句时,您实际上将两个值放在同一栏。 SQL不知道列的类型。可能,它会看到Time
值,使列成为DATETIME
列,然后您开始尝试将Travel
VARCHAR
个字符串填入其中。
尝试将两者都转换为相同的类型,如下所示:
SELECT
DATE_FORMAT(Time, '%Y-%m-%d %h:%i:%s') Time
FROM myTable
UNION
SELECT
Travel
FROM myTable;
答案 1 :(得分:0)
如果他们是不同的类型,我猜你想要这个:
SELECT Time as TimeValue, null as TravelValue FROM mytable
UNION ALL
SELECT null as TimeValue, Travel as TravelValue FROM mytable;
或者
SELECT Time, Travel FROM mytable;