Sql 外键查询
假设我有两个表,其结构如下: 表 id | A1 | A2 表B id |表A | id外键| B1Sql 外键查询,sql,sqlite,Sql,Sqlite,假设我有两个表,其结构如下: 表 id | A1 | A2 表B id |表A | id外键| B1 A中的条目与B中的条目有一对多的关系。我需要什么样的查询操作才能实现这样的效果:从表B中选择A1=foo的所有对象?基本上,在tableA上应用一个查询,并从这些结果中找到tableB中最适合使用联接执行的相应依赖对象: select B.* from tableB as B join tableA as A on B.tableA_id=A.i
A中的条目与B中的条目有一对多的关系。我需要什么样的查询操作才能实现这样的效果:从表B中选择A1=foo的所有对象?基本上,在tableA上应用一个查询,并从这些结果中找到tableB中最适合使用联接执行的相应依赖对象:
select
B.*
from
tableB as B
join tableA as A
on B.tableA_id=A.id
where
A1='foo'
最好使用联接执行该操作:
select
B.*
from
tableB as B
join tableA as A
on B.tableA_id=A.id
where
A1='foo'
从表格B中选择*其中表格A\U id在从表格A中选择id,其中A1=foo 我的朋友
在MySQL和Oracle上工作正常。不了解SQL Server。希望就是你想要的。从表B中选择*其中表A\u id在从表A中选择id,其中A1=foo 我的朋友
在MySQL和Oracle上工作正常。不了解SQL Server。希望就是您要寻找的。您需要连接表A和表B,并对结果发出查询:
select * from
tableA join tableB
ON tableA.A1 = tableB.tableA_id
WHERE tableA.A1 = 'foo'
您需要联接表A和表B并对结果发出查询:
select * from
tableA join tableB
ON tableA.A1 = tableB.tableA_id
WHERE tableA.A1 = 'foo'
+1.进一步阅读,SQLite支持什么联接?:联接的直观解释:+1。进一步阅读,SQLite支持什么连接?:连接的可视化解释:这也很有效,谢谢!子查询和联接之间有性能差异吗?这取决于数据库引擎。。。但通常连接会消耗更多内存,因为两个表都必须交叉进入内存。。。当您使用子查询时,效率更高,因为您一次只执行一个查询,只使用一小部分表,而不进行联接。。。但是一些数据库引擎,如Oracle 10g,可以通过连接等改进查询优化。。。无论如何。。。很多年前我就不再喜欢内部连接了。。。根据我个人的经验,如果您使用的数据库引擎支持子查询,请使用它们而不是联接。这也很有效,谢谢!子查询和联接之间有性能差异吗?这取决于数据库引擎。。。但通常连接会消耗更多内存,因为两个表都必须交叉进入内存。。。当您使用子查询时,效率更高,因为您一次只执行一个查询,只使用一小部分表,而不进行联接。。。但是一些数据库引擎,如Oracle 10g,可以通过连接等改进查询优化。。。无论如何。。。很多年前我就不再喜欢内部连接了。。。根据我个人的经验,如果您使用的数据库引擎支持子查询,请使用它们而不是联接。