C# 从第三个表中检索数据
我有三个表,分别命名为公司、产品和批次 公司表主要有公司id和公司名称作为属性 产品表将产品id、产品名称和公司id作为产品表的外键 批次表将批次id、产品id和fk作为Products表中的外键以及许多其他属性 现在,基本上我想做的是,如果我能从批处理表中检索Comp_id,对我来说会更好 注意:组件id不在批处理表中,但批处理表有产品id,每个产品id与公司相关 我不知道该怎么做。请帮忙C# 从第三个表中检索数据,c#,sql,.net,sql-server,C#,Sql,.net,Sql Server,我有三个表,分别命名为公司、产品和批次 公司表主要有公司id和公司名称作为属性 产品表将产品id、产品名称和公司id作为产品表的外键 批次表将批次id、产品id和fk作为Products表中的外键以及许多其他属性 现在,基本上我想做的是,如果我能从批处理表中检索Comp_id,对我来说会更好 注意:组件id不在批处理表中,但批处理表有产品id,每个产品id与公司相关 我不知道该怎么做。请帮忙 更简单地说,表A链接到表B,表B链接到表C。我想通过查询C从C获取A的数据。您可以加入产品和批次表,从产
更简单地说,表A链接到表B,表B链接到表C。我想通过查询C从C获取A的数据。您可以加入
产品
和批次
表,从产品
(包括comp\u id
)中获取与每个批次
相关的值。下面是一个基本示例,它将返回Batch
中的所有值以及相关的comp\u id
SELECT b.*, p.comp_id
FROM Batch b
INNER JOIN Products p ON b.Prod_id_fk = p.Prod_id;
在使用关系数据库(如SQL Server)时,执行连接可能需要做很多工作。我强烈建议您阅读SQL数据库初学者教程,了解使用SQL数据库所需的基本知识。您可以使用连接!只需将批次表与Products表主键(prod_id)上的Products表和批次表中的外键(prod_id_fk)连接起来,然后将Products表与Company表主键(comp_id)上的Company表和Products表中的外键(comp_id)连接起来
多亏了我解决的所有问题
SqlDataAdapter sda = new SqlDataAdapter("SELECT batch.batch_id, batch.product_id_fk, batch.quantity, batch.purchaseDate, batch.manufacturing_date, batch.expiryDate, batch.sold_qty, batch.left_qty, batch.packing, batch.p_price, batch.received_percentage, company.comp_name, products.p_name, products.p_id_pk FROM batch INNER JOIN products ON batch.product_id_fk = products.p_id_pk INNER JOIN company ON products.fk_com_id = company.comp_id where company.comp_id='" + id+ "'", con);
用这个
从公司c中选择c.*
p.comp\u id=c.comp\u id上的内部联接乘积p
b.prod_id_fk=p.prod_id上的内部联接批处理b如果我想获取存储在公司表中的公司名称,该怎么办?因为我还想获取存储在公司表中的公司名称。产品表和公司表之间有外键关系。请回复我。@JahanzaibNiazi,然后您必须将该表加入查询。这是绝对基本的SQL,请接受Elezar的建议,至少了解一点这个主题。如中所述,在提问之前,您需要进行研究。我理解这一点,但这是一个问答论坛,而不是支持聊天。我们都在做其他事情,不一定能马上回答你。纠缠我们不会得到更快的回应。事实上,它更可能让人恼火,导致根本没有人回应。无论如何,添加的其他答案也显示了如何连接多个表以获得
comp_name
,因此您现在应该有答案了。不要养成使用字符串连接创建查询的习惯,否则您的代码将容易受到SQL注入攻击,以及带有异常错误的运行时错误。不要只是粘贴代码,始终尝试解释代码或查询。这会更有帮助的。实际上我是新来这里帮忙的。我希望我能很快提高。谢谢你的建议。
select * from Batch batch inner join Products products on products.Prod_id = batch.Prod_id_fk
inner join Company company on company.comp_id = Products.comp_id
SqlDataAdapter sda = new SqlDataAdapter("SELECT batch.batch_id, batch.product_id_fk, batch.quantity, batch.purchaseDate, batch.manufacturing_date, batch.expiryDate, batch.sold_qty, batch.left_qty, batch.packing, batch.p_price, batch.received_percentage, company.comp_name, products.p_name, products.p_id_pk FROM batch INNER JOIN products ON batch.product_id_fk = products.p_id_pk INNER JOIN company ON products.fk_com_id = company.comp_id where company.comp_id='" + id+ "'", con);