【问题标题】:get names from different tables only having id in Master table using SQL?使用 SQL 从仅在主表中具有 id 的不同表中获取名称?
【发布时间】:2016-01-08 16:11:08
【问题描述】:

我有 4 个表格用于填充具有 id 和 name 的组合框,并且它们的 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,

【问题讨论】:

  • 只有我必须点击查看报告按钮,它应该从 db 获取名称,我这里有所有 id

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


【解决方案1】:

你基本上已经有了,你只需要修复连接。不要使用主表中的 ID m.id 加入,您必须使用产品 ID m.product_id 和品牌 ID m.brand_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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-29
    • 1970-01-01
    • 2018-03-26
    • 1970-01-01
    相关资源
    最近更新 更多