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;