Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从第三个表中检索数据_C#_Sql_.net_Sql Server - Fatal编程技术网

C# 从第三个表中检索数据

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的数据。您可以加入产品和批次表,从产

我有三个表,分别命名为公司产品批次

公司表主要有公司id和公司名称作为属性

产品表产品id、产品名称和公司id作为产品表的外键

批次表将批次id、产品id和fk作为Products表中的外键以及许多其他属性

现在,基本上我想做的是,如果我能从批处理表中检索Comp_id,对我来说会更好

注意:组件id不在批处理表中,但批处理表有产品id,每个产品id与公司相关

我不知道该怎么做。请帮忙


更简单地说,表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);