【发布时间】:2017-02-08 09:05:11
【问题描述】:
以下设置:
t1
ID Name Price
1 Miller 50
2 Smith 10
3 Someone 20
t2
ID Item Price
1 10.1 25
1 10.2 25
2 32.1 10
3 32.1 10
3 11.1 2
3 12.2 3
3 43.2 5
我要做的是从第二个表中选择所有条目,其中一个是 11.1。我正在使用这个查询:
SELECT
t1.ID
t1.Name
t2.Item
FROM t1
JOIN t2 on t1.ID = t2.ID
WHERE t2.item in ('11.1)
我应该得到以下结果:
ID Name Item
3 Someone 31.1
3 Someone 11.1
3 Someone 12.2
3 Someone 43.2
但是因为我在特定项目上做了“哪里”,所以我只得到一行。当只有 1 行与“11.1”匹配时,如何从 t2 获取所有行?
【问题讨论】:
-
使用 MSSQL 服务器
-
这应该返回 1 行。我不明白你想要什么?
-
您是否需要特定 ID 的所有项目,其中至少有一个项目 = '11.1'?
-
是的,这是一个 SAP 环境,第一个表用于订单。第二个指定列出所有已售商品的订单。请求是按包含指定项目的顺序列出所有项目
-
因此,如果匹配项目属于该订单,则您需要整个订单的详细信息。我说的对吗?
标签: sql sql-server join where