没有条件的 oledb xlsx 连接

oledb xlsx join without on condition

我使用 C# 通过 oledb 访问 xls 文档。我必须在没有任何条件的情况下加入两张纸。我尝试从这两张表中获得任何可能的列组合。

在 mssql 下,我可以使用 ON 1 = 1 作为连接条件,但这在这里不起作用。

以下是我已经尝试过的一些变体:

1. SELECT [Grid 1$].[FOO], [Grid 2$].[BAR] FROM [Grid 1$] LEFT JOIN
    [Grid 2$] ON 1 = 1    
2. SELECT [Grid 1$].[FOO], [Grid 2$].[BAR] FROM [Grid 1$] LEFT JOIN
    [Grid 2$] ON TRUE
3. SELECT [Grid 1$].[FOO], [Grid 2$].[BAR] FROM [Grid 1$] CROSS JOIN
    [Grid 2$]

1号和2号掷球:

System.Data.OleDb.OleDbException (0x80040E14): JOIN expression not supported.

第 3 次投掷:

System.Data.OleDb.OleDbException (0x80004005): Fehler E_FAIL(0x80004005) in IErrorInfo.GetDescription.

是否有针对此问题的任何解决方案或变通方法?


为了指出我正在寻找的是一个例子:

Sheet 1:
 1. foo
 2. bar
Sheet 2:
 1. jon skeet
 2. harry potter

查询应该return:

foo jon skeet
foo harry potter
bar jon skeet
bar harry potter

我希望这指出了我的意图。

条件为 1=1 的 LEFT JOIN 毫无意义。根据您的解释,您正在进行笛卡尔连接(某些数据库上的 CROSS JOIN 和 FULL JOIN)。您可以在没有任何连接子句的情况下完成它(旧式连接 IOW):

SELECT [Grid 1$].[FOO], [Grid 2$].[BAR] FROM [Grid 1$], [Grid 2$]

注意:请始终牢记 Excel 不是数据库。