以下设置:
t1
ID Name Price
1 Miller 50
2 Smith 10
3 Someone 20t2
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但是因为我在一个特定的项目上做了一个"where“,所以我只得到了一行。当只有一行与"11.1“匹配时,我如何从t2获取所有行?
发布于 2017-02-08 18:14:07
试试这个。
首先需要获取与'11.1'相等的item的ID列表,然后才能从列表中的表t2中获取数据。你需要加入t1才能获得name。
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')发布于 2017-02-08 18:23:35
您应该使用子查询来获取与您的条件首先返回的元素具有相同id的所有元素。
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'))https://stackoverflow.com/questions/42108764
复制相似问题