我和朋友在玩MySQL中的JOIN
子句。下面是表的结构有:完全连接语法中的未知列错误
create table abc
(
c1 int,
c2 char(1)
);
create table xyz
(
c2 char(1),
c3 varchar(5)
);
插入其中的值是:
insert into abc
values
(1,"a"),
(2,"b");
insert into xyz
values
("a","apple"),
("c","car");
现在,我有following two SQL statements(sqlfiddle link):
select
*,
'full'
from abc
full join xyz
using (c2);
和
select
*,
'full'
from abc
full join xyz
on abc.c2 = xyz.c2;
如在小提琴可以看出,第一个查询返回:
| C2 | C1 | C3 | FULL |
|----|----|-------|------|
| a | 1 | apple | full |
而第二查询提升和错误:
Unknown column 'abc.c2' in 'on clause':
为什么列abc.c2
使用的ON
条款时不能识别JOIN
语法?
当heck做了MySQL启动允许FULL JOIN语法?我的经验是不支持FULL JOIN语法。 – Taryn 2014-09-06 16:40:06
我不知道为什么第一个查询甚至运行;正如bluefeet指出的那样,mysql不支持 - afaik - 支持完整的外连接。如果将第二个查询更改为左连接或右连接,则它会正常运行。更神秘的是为什么第一个查询,完全连接使用,实际运行。 – 2014-09-06 16:42:36
这似乎是特定于MySql的错误:当您的查询再次运行SQL Server([demo 1](http://sqlfiddle.com/#!3/10a05/3))或Oracle([demo 2]( http://sqlfiddle.com/#!4/e2a21/15))。 – dasblinkenlight 2014-09-06 16:53:14