从使用SQL的主表中只有id的不同表中获取名称?

时间:2016-01-08 16:11:08

标签: mysql sql sql-server database relational-database

我有4个表用于填充具有id和名称的组合框,并且他们的id已保存在主表中,现在我有以下表格:

  product|id|name  |     brand |id|name      color |id|name     size|id|name
         |1 |bottle|           |2 |aqua|           |4 |white|        |1|large

让主表只存储他们的id和它自己的main_id。

问题:如何使用ID获取产品,品牌,颜色,尺寸的名称?还有main_id的总数。

在查询中,我必须自己提供ID以获取名称:

select m.contr_num , m.contr_date , br.brand_name , bu.buyer_name ,
cl.colour_name , mn.manu_name , s.size_name from Scanning_M m inner join 
Brand br on m.id = br.Brand_id,

1 个答案:

答案 0 :(得分:0)

你基本上拥有它,你只需要修复连接。您必须使用产品ID m.id和品牌ID m.product_id等加入,而不是使用主表m.brand_id中的ID加入

(我猜测主表中的id列与其他表的名称相同。)

SELECT m.contr_num , m.contr_date , br.brand_name , bu.buyer_name ,
    cl.colour_name , mn.manu_name , s.size_name
FROM Scanning_M m
    INNER JOIN Brand br ON m.Brand_id = br.Brand_id
    INNER JOIN Buyer bu ON m.Buyer_id = bu.Buyer_id
    INNER JOIN colour cl ON m.colour_id = cl.colour_id
    INNER JOIN manu mn ON m.manu_id = mn.manu_id
    INNER JOIN size s ON m.size_id = s.size_id