我和朋友在玩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