Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 外键查询_Sql_Sqlite - Fatal编程技术网

Sql 外键查询

Sql 外键查询,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

假设我有两个表,其结构如下:

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.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,可以通过连接等改进查询优化。。。无论如何。。。很多年前我就不再喜欢内部连接了。。。根据我个人的经验,如果您使用的数据库引擎支持子查询,请使用它们而不是联接。