我正在使用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”及其后的所有内容,我很好。请注意,我必须在第一个表的名称(“order”)周围放置括号,因为我认为它是受保护的关键字...任何人都知道Javascript中此类事物的正确语法?
答案 0 :(得分:0)
这可能是您正在寻找的SQL语法:
SELECT Orders.Id
FROM [Orders]
INNER JOIN OrderItems ON [Orders].Id = OrderItems.Id
请注意,(
和)
是不必要的。
如果要使用别名,则必须在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);