MySQL参数化选择查询联接表问题

本文关键字:问题 查询 参数 选择 MySQL | 更新日期: 2023-09-27 18:00:46

我将参数化选择查询与我的程序结合使用,作为一个整体,它可以工作,除非我尝试连接表。

以下是我所做的一个小摘录:

using (MySqlCommand cmd = new MySqlCommand(paramQuery.ToSql(), connection)) {
/*
   paramQuery.ToSql() equals:
   "Select tableOne.ID, tableOne.Department, tableTwo.Name
   From tableOne, tableTwo
   Where tableOne.ID = @param0"
*/

    for (int index = 0; index < paramQuery.Parameters().Count; index++) 
        cmd.Parameters.AddWithValue(paramQuery.Parameters().ElementAt(index).Key,
            paramQuery.Parameters().ElementAt(index).Value);
    /*
       paramQuery.Parameters().ElementAt(index).Key = "@param0"
       paramQuery.Parameters().ElementAt(index).Value = "tableTwo.ID"
    */
    MySqlDataReader reader = cmd.ExecuteReader();
    while (reader.Read()) {
            // Do stuff
    }

}

我尝试加入的其中一个表将检索tableTwo中所有具有相同ID的表。是不是我做错了什么?

MySQL参数化选择查询联接表问题

试试这个:

  Select tableOne.ID, tableOne.Department, tableTwo.Name
  From tableOne join tableTwo
    on tableOne.ID=tableTwo.ID
  Where tableOne.ID = @param0

正如您所理解的tableOne.ID=tableTwo.ID是您连接表的列的名称。在您当前的示例中,我看不出它是如何工作的。还有左联接和右联接,它们各自有不同的用途。以下是它的工作原理示例:http://dev.mysql.com/doc/refman/5.0/en/join.html