MSSQL Select 个要插入的表
MSSQL Select more Tables to INSERT
我正在为这段代码苦苦挣扎:
INSERT INTO Bier(Bier, BrowuerID, TypeID, GistingID, KleurID, Alcohol)
SELECT bb.Naam, b.BrouwerID, t.TypeID, g.GistingID, k.KleurID, bb.Alcoholperc
FROM BELGISCHBIER AS bb JOIN Brouwer AS b JOIN Type AS t JOIN Gisting AS g JOIN Kleur AS k
谁能告诉我为什么这行不通,因为我对 SQL
了解不多
谢谢。
与JOIN
、SQL理解INNER JOIN
。强制使用 ON
子句也是如此。
只有使用CROSS JOIN
才能不写ON
子句
因此,在您的 JOIN
命令中添加 ON
子句。
您的代码有一些语法错误,您在 Join 操作中遗漏了 On 子句
试试这样想,
INSERT INTO Bier(Bier, BrowuerID, TypeID, GistingID, KleurID, Alcohol)
SELECT bb.Naam, b.BrouwerID, t.TypeID, g.GistingID, k.KleurID, bb.Alcoholperc
FROM BELGISCHBIER AS bb <on Clause>JOIN Brouwer AS b <on Clause> JOIN Type on AS t <on Clause> JOIN Gisting AS g <on Clause> JOIN Kleur AS k <on Clause>
或者你可以简单地使用 Cross Join,它不需要 On 子句。
语法:
SELECT *
FROM table1
CROSS JOIN table2;
示例:
INSERT INTO Bier
(Bier,BrowuerID,TypeID,GistingID,
KleurID,Alcohol)
SELECT bb.Naam,b.BrouwerID,t.TypeID,g.GistingID,
k.KleurID,bb.Alcoholperc
FROM BELGISCHBIER AS bb
CROSS JOIN Brouwer AS b
CROSS JOIN Type AS t
CROSS JOIN Gisting AS g
CROSS JOIN Kleur AS k
如果表之间没有公共列,请使用 Cross Join
,否则如其他人所述,您需要使用 ON
条件来连接两个表
INSERT INTO Bier
(Bier,BrowuerID,TypeID,GistingID,
KleurID,Alcohol)
SELECT bb.Naam,b.BrouwerID,t.TypeID,g.GistingID,
k.KleurID,bb.Alcoholperc
FROM BELGISCHBIER AS bb
CROSS JOIN Brouwer AS b
CROSS JOIN Type AS t
CROSS JOIN Gisting AS g
CROSS JOIN Kleur AS k
您使用的 JOINS
没有强制性的 ON
子句,该子句决定了应该在哪些列上连接表:
INSERT INTO bier
(
bier,
browuerid,
typeid,
gistingid,
kleurid,
alcohol
)
SELECT bb.naam,
b.brouwerid,
t.typeid,
g.gistingid,
k.kleurid,
bb.alcoholperc
FROM belgischbier AS bb
JOIN brouwer AS b
ON bb.browuerid= b.browuerid
JOIN type AS t
ON b.BrouwerTypeID = t.BrouwerTypeID
JOIN gisting AS g
ON bb.GistingID = g.GistingID
JOIN kleur AS k
ON g.KleurID = k.KleurID
我正在为这段代码苦苦挣扎:
INSERT INTO Bier(Bier, BrowuerID, TypeID, GistingID, KleurID, Alcohol)
SELECT bb.Naam, b.BrouwerID, t.TypeID, g.GistingID, k.KleurID, bb.Alcoholperc
FROM BELGISCHBIER AS bb JOIN Brouwer AS b JOIN Type AS t JOIN Gisting AS g JOIN Kleur AS k
谁能告诉我为什么这行不通,因为我对 SQL
了解不多谢谢。
与JOIN
、SQL理解INNER JOIN
。强制使用 ON
子句也是如此。
只有使用CROSS JOIN
才能不写ON
子句
因此,在您的 JOIN
命令中添加 ON
子句。
您的代码有一些语法错误,您在 Join 操作中遗漏了 On 子句
试试这样想,
INSERT INTO Bier(Bier, BrowuerID, TypeID, GistingID, KleurID, Alcohol)
SELECT bb.Naam, b.BrouwerID, t.TypeID, g.GistingID, k.KleurID, bb.Alcoholperc
FROM BELGISCHBIER AS bb <on Clause>JOIN Brouwer AS b <on Clause> JOIN Type on AS t <on Clause> JOIN Gisting AS g <on Clause> JOIN Kleur AS k <on Clause>
或者你可以简单地使用 Cross Join,它不需要 On 子句。
语法:
SELECT *
FROM table1
CROSS JOIN table2;
示例:
INSERT INTO Bier
(Bier,BrowuerID,TypeID,GistingID,
KleurID,Alcohol)
SELECT bb.Naam,b.BrouwerID,t.TypeID,g.GistingID,
k.KleurID,bb.Alcoholperc
FROM BELGISCHBIER AS bb
CROSS JOIN Brouwer AS b
CROSS JOIN Type AS t
CROSS JOIN Gisting AS g
CROSS JOIN Kleur AS k
如果表之间没有公共列,请使用 Cross Join
,否则如其他人所述,您需要使用 ON
条件来连接两个表
INSERT INTO Bier
(Bier,BrowuerID,TypeID,GistingID,
KleurID,Alcohol)
SELECT bb.Naam,b.BrouwerID,t.TypeID,g.GistingID,
k.KleurID,bb.Alcoholperc
FROM BELGISCHBIER AS bb
CROSS JOIN Brouwer AS b
CROSS JOIN Type AS t
CROSS JOIN Gisting AS g
CROSS JOIN Kleur AS k
您使用的 JOINS
没有强制性的 ON
子句,该子句决定了应该在哪些列上连接表:
INSERT INTO bier
(
bier,
browuerid,
typeid,
gistingid,
kleurid,
alcohol
)
SELECT bb.naam,
b.brouwerid,
t.typeid,
g.gistingid,
k.kleurid,
bb.alcoholperc
FROM belgischbier AS bb
JOIN brouwer AS b
ON bb.browuerid= b.browuerid
JOIN type AS t
ON b.BrouwerTypeID = t.BrouwerTypeID
JOIN gisting AS g
ON bb.GistingID = g.GistingID
JOIN kleur AS k
ON g.KleurID = k.KleurID