0

我正在使用 Javascript 和 Internet Explorer 的 ActiveXObjects 连接到 SQL 数据库。我可以毫无问题地从单个表中读出结果。不幸的是,我无法弄清楚连接同一数据库中的两个表的语法。这是我正在尝试的:

//create object
var conn = new ActiveXObject("ADODB.Connection");

//store credentials
var connectionstring = "Provider=sqloledb; Data Source={omitted}; Initial Catalog={omitted}; User ID={omitted};Password={omitted}";

//open the db connection with credentials
conn.Open(connectionstring);

//create a new record set
var rs = new ActiveXObject("ADODB.Recordset");

//search the record set with SQL call
rs.Open("SELECT * FROM [order] INNER JOIN OrderItems ON (order.Id = OrderItems.Id)", conn);

如果我删除“INNER JOIN”和它之后的所有内容,我很好。请注意,我必须在第一个表的名称(“订单”)周围加上括号,因为我认为它是一个受保护的关键字......有人知道 Javascript 中这种事情的正确语法吗?

4

1 回答 1

0

这可能是您正在寻找的 SQL 语法:

SELECT Orders.Id
FROM [Orders] 
INNER JOIN OrderItems ON [Orders].Id = OrderItems.Id

请注意,(and)是不必要的。

如果要使用别名,则必须在JOIN子句的其余部分使用这些别名:

SELECT o.Id 
FROM [Orders] o
INNER JOIN OrderItems oi ON o.Id = oi.Id

一旦你确定了 SQL,你应该能够将它传递给Open方法:

var sql = 
    'SELECT Orders.Id ' +
    'FROM [Orders] ' +
    'INNER JOIN OrderItems ON [Orders].Id = OrderItems.Id';

rs.Open(sql, conn);
于 2017-01-18T07:33:29.537 回答