首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL SELECT MSSQL where one line,MSSQL

SQL SELECT MSSQL where one line,MSSQL
EN

Stack Overflow用户
提问于 2017-02-08 17:05:11
回答 2查看 4.4K关注 0票数 0

以下设置:

t1

代码语言:javascript
复制
ID     Name      Price
1      Miller    50      
2      Smith     10
3      Someone   20

t2

代码语言:javascript
复制
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。我使用这个查询:

代码语言:javascript
复制
SELECT
t1.ID
t1.Name
t2.Item

FROM t1 
JOIN t2 on t1.ID = t2.ID
WHERE t2.item in ('11.1)

我应该得到以下结果:

代码语言:javascript
复制
ID     Name    Item
3      Someone 31.1
3      Someone 11.1
3      Someone 12.2
3      Someone 43.2

但是因为我在一个特定的项目上做了一个"where“,所以我只得到了一行。当只有一行与"11.1“匹配时,我如何从t2获取所有行?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-08 18:14:07

试试这个。

首先需要获取与'11.1'相等的item的ID列表,然后才能从列表中的表t2中获取数据。你需要加入t1才能获得name

代码语言:javascript
复制
Select 
   t2.ID, 
   t1.name Name, 
   t2.item Item
from t1 
join t2 
on t1.ID= t2.ID
where t2.ID in (select ID from t2 where item = '11.1')
票数 1
EN

Stack Overflow用户

发布于 2017-02-08 18:23:35

您应该使用子查询来获取与您的条件首先返回的元素具有相同id的所有元素。

代码语言:javascript
复制
SELECT 
  t2.ID, t2.Item, t1.Name
FROM 
  t1
JOIN
  t2
  ON t2.ID = t1.ID
WHERE t2.ID in (SELECT ID FROM t2 WHERE t2.item in ('11.1'))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42108764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档