我如何通过使用3个相互依赖的表数据来实现查询以显示数据?

时间:2019-06-26 09:18:54

标签: mysql sql

我的三个桌子都是这样

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

3 个答案:

答案 0 :(得分:1)

DISTINCT Sub_nameJOIN一起使用可以做到这一点:

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

答案 1 :(得分:1)

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 

答案 2 :(得分:0)

您可以使用下面的查询使用group by来获得唯一的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