2013-01-17 31 views
0

加入到现有的代码我试图修改云一样的东西:我怎么能引用“父”表中的一系列开选择

SELECT * FROM <table1> 
JOIN 
(SELECT * FROM <table2> 
    WHERE GETDATE() BETWEEN <fields from table2>) 

我需要改变GETDATE()来引用从表1

我更愿意进行更改为小和地方尽可能不引起其他地方的问题领域,所以我希望有一个我可以从初始选择参考的当前值的一些简单方法。

回答

1

给表的别名,你可以使用子查询中引用它的子查询。

虽然你应该能够只使用联接:

SELECT * FROM <table1> 
INNER JOIN <table2> 
    ON <table1>.DateField BETWEEN <fields from table2> 
+0

啊,好主意。当前的实现是在一个表上使用子选择,但我应该只能加入该表。 –

+0

嗯,实际上这是行不通的。最初'(SELECT * FROM )'已经陷入制约的结果为JOIN WHERE子句。我试图把它移到最后,但它不起作用。我想,这是因为有很多更加入参与,我没有表现出而非发布的所有SQL我想我应该首先尝试更好地学习它自己。 –

1

你可以在“名称”一表在声明中的其他地方引用:

SELECT * FROM <table1> AS t1 
JOIN 
(SELECT * FROM <table2> 
    WHERE t1.field BETWEEN <fields from table2>) 
相关问题