我对我的SQL查询有点麻烦。SQL CROSS JOIN问题
我有两个表:
表1
id guid title D0 D1 D2
-----------------------------------------
1 guid1 Title1 0.123 -0.235 0.789
2 guid2 Title2 -0.343 0.435 0.459
3 guid3 Title3 0.243 -0.267 -0.934
...
100 guid4 Title100 -0.423 0.955 0.029
和表2(注意它具有相同的架构,只是不同的数据)。
id guid title D0 D1 D2
----------------------------------------
1 guid1 Title1 0.233 -0.436 -0.389
2 guid2 Title2 -0.343 0.235 0.789
3 guid3 Title3 0.573 -0.067 -0.124
...
100 guid4 Title100 -0.343 0.155 0.005
我试图找出如何写一个SELECT
语句返回所有的冠军WHERE
所有的ABS(Table1_D0*Table2_D0)+ABS(Table1_D1*Table2_D1)+ABS(Table1_D2*Table2_D2)
组合小于定限值(可能是硬编码)。
到目前为止,我正在尝试使用CROSS JOIN
,但我不确定这是否是正确的方法。
这是否有意义? 表1 row1针对表2的所有行,然后表1针对表2的所有行的所有行。
如果重要,我正在使用MS SQL。
非常感谢! 布雷特
有DB时,不支持交叉连接的替代语法?例如SQL 2000 – 2011-02-23 20:48:39
@Conrad'SELECT t1.title FROM Table1 t1,table2 t2'将是相同的 – Magnus 2011-02-23 21:05:26
@Conrad Frix,SQL Server 2000确实支持上面的语法。 – HLGEM 2011-02-23 21:14:20