【发布时间】:2010-05-30 00:52:09
【问题描述】:
假设我有 2 个表,其结构如下:
表A
标识 | A1 | A2
表B
标识 | tableA_id (外键) | B1
A 中的条目与 B 中的条目具有一对多的关系。我需要什么样的查询操作来实现“类似这样:从表 B 中选择 A1="foo"”的所有对象?基本上,在 tableA 上应用查询并从这些结果中找到 tableB 中相应的依赖对象
【问题讨论】:
假设我有 2 个表,其结构如下:
表A
标识 | A1 | A2
表B
标识 | tableA_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 * FROM tableB WHERE tableA_id IN (SELECT id FROM tableA WHERE A1 = "foo");
子查询我的朋友。
在 MySQL 和 Oracle 上运行良好。不了解 SQL Server。希望就是您所寻找的。p>
【讨论】:
您需要连接表 A 和 B 并对结果发出查询:
select * from
tableA join tableB
ON tableA.A1 = tableB.tableA_id
WHERE tableA.A1 = 'foo'
【讨论】: