【问题标题】:SQL Inner Join error - new to SQLSQL 内部连接错误 - SQL 的新手
【发布时间】:2018-06-25 04:13:52
【问题描述】:
OleDbConnection connection = new OleDbConnection(@"Provider = Microsoft.ACE.OLEDB.12.0; Data Source = E:\Computing\WindowsFormsApplication1\WindowsFormsApplication1\bin\Debug\Database31.accdb");
        connection.Open();
        OleDbCommand command = new OleDbCommand("SELECT Cocktails.CID, Ingredients.Ingredient1" +
            " FROM Cocktails INNER JOIN Ingredients" +
            " ON Cocktails.ID = Ingredients.ID" +
            " WHERE Cocktails.ID = 1",
        connection);

        OleDbDataReader reader = command.ExecuteReader();
        if (reader.Read())
        {
            string result = reader.GetValue(0).ToString();
            string result2 = reader.GetValue(1).ToString();
            MessageBox.Show(result + result2);
        }
        connection.Close();

我是 SQL 新手,我尝试使用“内部连接”从两个不同的表中提取信息:“连接操作中的语法错误。” 是我得到的错误并且不确定为什么。谢谢

【问题讨论】:

  • Ingredient.IDCocktail.ID 是什么?不应该是Ingredients.IDCocktails.ID吗?
  • 您在查询中有CocktailCocktails。选择正确的。 (即使你做对了,我怀疑JOIN 是否真的在id 列上。)
  • 您的表是叫CocktailsIngredients 还是叫CocktailIngredient?查询似乎无法决定哪个。
  • 澄清@GordonLinoff 所说的:检查您是否也有CocktailIngredients 表。如果存在,那么您需要在加入时将该表用作“中间人”。鸡尾酒与成分等于似乎不太可能,但这就是您通过将它们直接链接到它们的两个 ID 列来暗示的意思。
  • 嗨,是的,他们错了,但现在我收到错误消息“没有为一个或多个必需参数提供值。”

标签: c# sql database inner-join oledb


【解决方案1】:

鸡尾酒和配料必须是鸡尾酒和配料,就像您在 FROM ... INNTER JOIN 行中一样

【讨论】:

    【解决方案2】:

    您指定的表名有误。

    ON Cocktails.ID = Ingredients.ID
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-10
      • 2013-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多