我的三个表是这样的
Requistion Item Sub_Category
id | Item_id | status Item_id | name | sub_cat sub_cat | Sub_name
1 | 10 | 100 10 | apple |1 1 | Fruits
2 | 20 | 100 20 | Beans |2 2 | Vegitable
3 | 30 | 100 30 | banana |1 3 | Drinks
4 | 40 | 200 40 | Water |3
我想显示所有Sub_name具有以下条件
- 申请表状态 = 100
- 没有重复名称的结果
根据上表,结果必须像
Sub_name
Fruits
Vegitable
将DISTINCT Sub_name
与JOIN
一起使用,可以做到这一点:
SELECT DISTINCT S.Sub_name
FROM Requistion R
JOIN Item I
ON I.Item_id = R.Item_id
JOIN Sub_Category S
ON S.sub_cat = I.sub_cat
WHERE R.status = 100
SELECT * FROM Requistion INNER JOIN Item on Item.Item_id=Requistion.Item_id INNER JOIN Sub_Category on Sub_Category.sub_cat=Item.sub_cat where STATUS=100
您可以使用以下查询来获取此查询,使用分组依据来获取唯一sub_name,
select Sub_name from Sub_Category sc
JOIN Item i on i.sub_cat = sc.sub_cat
JOIN Requistion r on r.Item_id = i.Item_id
WHERE r.status = 100
GROUP BY sc.Sub_name
您可以使用不同的相同,
select DISTINCT Sub_name from Sub_Category sc
JOIN Item i on i.sub_cat = sc.sub_cat
JOIN Requistion r on r.Item_id = i.Item_id
WHERE r.status = 100