Sql 如何从一个表中选择一个值并将其用于另一个选择?

Sql 如何从一个表中选择一个值并将其用于另一个选择?,sql,Sql,我有两张桌子,f.e.: Usertable:姓名、姓氏、用户id 对象表:用户id、日期、对象id 现在我想使用给定变量Object.ID和Object.Releasedate从Objecttable中选择userID,其中date=Object.Releasedate和Object\u ID=Object.ID。接下来,应该使用所选的userID从Usertable中选择name、姓氏,其中user\u id=userID 如何在一个语句中编写此语句?使用内部连接 select name,

我有两张桌子,f.e.:

Usertable:姓名、姓氏、用户id

对象表:用户id、日期、对象id

现在我想使用给定变量
Object.ID
Object.Releasedate
从Objecttable中选择userID,其中date=Object.Releasedate和Object\u ID=Object.ID。接下来,应该使用所选的userID从Usertable中选择name、姓氏,其中user\u id=userID


如何在一个语句中编写此语句?

使用
内部连接

select name, surname
from usertable a inner join objecttable b
on a.user_id=b.userID
where date = Object.Releasedate and object_id = Object.ID

内部联接的替代方法是子查询

select ut.name, ut.surname 
from Usertable ut 
where ut.user_id in (select ot.userID 
                     from Objecttable ot 
                     where ot.date = Object.Releasedate and
                           ot.object_id = Object.ID
                    );

哪一个更好取决于您的数据结构,如果您想知道,请查看解释计划。

向我们展示一些示例表数据和预期结果。(格式化文本,无图像。)@Biome。我认为这是更好的解决办法。首先,如果对象表中有多行匹配,它不会返回重复项。其次,它编写得更好,使用正确的表别名并限定列名