Sql 如何在access中为我的情况查询多个数据库
这是我的条件 我有三个表,其中有以下列Sql 如何在access中为我的情况查询多个数据库,sql,database,ms-access,Sql,Database,Ms Access,这是我的条件 我有三个表,其中有以下列 Recipe - rID - pID - ingID - ingAmount Product -pID -pName Ingredient - ingID - ingName 对于Recpe表,Recipe.ingID、Recipe.pID引用自产品的Product.pID(主键),而相同的配料.ingID也引用自Product.ingID 总的来说 Recipe.pID = Product.pID
Recipe
- rID
- pID
- ingID
- ingAmount
Product
-pID
-pName
Ingredient
- ingID
- ingName
对于Recpe表,Recipe.ingID、Recipe.pID引用自产品的Product.pID(主键),而相同的配料.ingID也引用自Product.ingID
总的来说
Recipe.pID = Product.pID
Recipe.ingID = Product.pID
Recipe.ingID = Ingredient.ingID
我想使用ACCESS中的单个查询检索以下列
pID | pName | ingID | ingName | ingAmount |
我尝试了以下几点:
SELECT Recipe.pID, Product.pName, Recipe.ingID,
Ingredient.ingName, Recipe.ingAmount
FROM Recipe, Product, Ingredient
WHERE Recipe.pID = 5
AND (
Recipe.ingID = Ingredient.ingID
OR Recipe.ingID = Product.pID
);
问题是,(Recipe.ingID=component.ingID或Recipe.ingID=Product.pID)
首先计算零件,因此查询多行
如果您得到了我想要的,请帮助我。您是否尝试过选择DISTINCT?这就是你想要的吗?条件应该是
Recipe.ingID=component.ingID和Recipe.pID=Product.pID
@Florin:Nope!我希望Recipe.ingID=component.ingID等于true或Recipe.ingID=product.pID等于true@user995387当您说“查询多行”时,问题是什么,您是否获得重复记录,如果是,在哪些字段上?是ingID字段的重复记录您是否尝试选择DISTINCT?这就是你想要的吗?条件应该是Recipe.ingID=component.ingID和Recipe.pID=Product.pID
@Florin:Nope!我希望Recipe.ingID=component.ingID等于true或Recipe.ingID=product.pID等于true@user995387当您说“查询多行”时,问题是什么,您是否获得重复记录,如果是,在哪些字段上?是ingID字段的重复记录
SELECT Recipe.pID, Recipe.ingID, Recipe.ingAmount,
Ingredient.ingName AS element_name,
'Ingredient' AS element_type
FROM Recipe INNER JOIN Ingredient
ON Recipe.ingID = Ingredient.ingID
WHERE Recipe.pID = 5
UNION
SELECT Recipe.pID, Recipe.ingID, Recipe.ingAmount,
Product.pName AS element_name,
'Product' AS element_type
FROM Recipe INNER JOIN Product
ON Recipe.pID = Product.pID
WHERE Recipe.pID = 5
UNION
SELECT Recipe.pID, Recipe.ingID, Recipe.ingAmount,
Product.pName AS element_name,
'Product as Ingredient' AS element_type
FROM Recipe INNER JOIN Product
ON Recipe.ingID = Product.pID
WHERE Recipe.pID = 5;