SQL SELECT 多行,其中一行,MSSQL
SQL SELECT multiple Lines where one line is like, MSSQL
以下设置:
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
我要做的是 select 来自第二个 Table 的所有条目,其中一个类似于 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",所以我只得到一行。当只有 1 行与“11.1”匹配时,如何从 t2 获取所有行?
试试这个...
首先需要获取等于'11.1'
的item ID列表,然后可以从列表中获取tablet2
的数据。您需要加入 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')
您应该首先使用子查询来获取与您的条件返回的元素具有相同 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'))
以下设置:
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
我要做的是 select 来自第二个 Table 的所有条目,其中一个类似于 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",所以我只得到一行。当只有 1 行与“11.1”匹配时,如何从 t2 获取所有行?
试试这个...
首先需要获取等于'11.1'
的item ID列表,然后可以从列表中获取tablet2
的数据。您需要加入 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')
您应该首先使用子查询来获取与您的条件返回的元素具有相同 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'))