SqlDataSource中的SQL Join查询
本文关键字:查询 Join SQL 中的 SqlDataSource | 更新日期: 2023-09-27 18:07:56
我真的不确定如何做到这一点。
在表Product1
中,我有:
Id, Code, Description, Group, Quantity, Unit, Cost, Note
在另一个表Componets
中我有:
Id, Code, Description, Unit, Cost, Note
我面临的问题是,虽然表Components
总是所有列都有数据,表Product1
应该从表"Components"中获取相关的"Description, Unit and Cost"数据。在本表"Product1"中,用户基本只添加了Code、Quantity、Group和Note。
在SqlDataSource
中进行查询是否可以实现这一目标?我不知道该怎么做,非常感谢您的帮助。
到目前为止,这是我所尝试的:
SELECT
Product1.Code, Group, Quantity, Product1.Note
FROM
dbo.Product1
INNER JOIN
dbo.Components ON Components.Code = Product1.Code
但是我没有得到我需要的,我只从Product1
表中得到Code
, Group
, Quantity
和Note
这意味着你的字段(列)Code和Note出现在两个表中;因此,应该使用表前缀,它指出将从哪个表中获取列:
SELECT Components.Code AS 'Components Code', Product1.Code AS 'Product Code', Groupp, Quantity, Components.Note AS 'Components Node', Product1.Note AS 'Product Note'
FROM
dbo.Product1
INNER JOIN dbo.Components
ON Components.Code = Product1.Code
如上所示,可以包含多个列,并在获取时给它们一个标签。
首先,让我们来理解为什么它们是"模棱两可的"。
因为您的连接在两个具有相同列名的表上。由于没有为这些列指定表名,因此SQL引擎会感到困惑,您希望从哪个表中获取这些列?因此,它说模棱两可。只需使用别名:
GENERAL IDEA
:
SELECT tab.id, tab.Name
FROM TableName tab
WHERE选项卡称为别名。
关于你的问题,这是你需要的查询:
SELECT prod.Code,
prod.Groupp,
prod.Quantity,
prod.Note,
comp.Description,
comp.Unit,
comp.Cost
FROM dbo.Product1 prod
INNER JOIN dbo.Components comp
ON comp.Code = prod.Code
//Any Where conditions should follow here
观察prod
和comp
如何被用作别名。它们不会给你造成任何"歧义"。
希望这有帮助!!