c# - 另一个缩短SQL字符串? C#

标签 c# mysql sql select

有些人可能已经注意到这一点,我想确认一下,我对复杂的 SQL 字符串确实缺乏经验。我只知道简单的 SELECT 、 INSERT 、 UPDATE 和 DELETE 语句。为了实现我的目的,我经常使用 2 个 SELECT 语句,比如这个:

con.Open();
string cmdstr = "SELECT UNIQUE FROM recipeList WHERE `stock_ID` = '" + stockIDTxtbox.Text + "'";
cmd = new MySqlCommand(cmdstr, con);
dr = cmd.ExecuteReader();
string menuID = "";
while (dr.Read())
{
   menuID = (dr["menu_ID"].ToString());
}
dr.Close();
con.Close();

con.Open();
string cmdstr = "SELECT `menu_name` FROM recipedb WHERE `menu_ID` = '" + menuID + "'";
cmd = new MySqlCommand(cmdstr, con);
dr = cmd.ExecuteReader();
string menuName = "";
while (dr.Read())
{
    menuName = (dr["menu_name"].ToString());
    this.listView1.Items.Add(new ListViewItem(new string[]{ menuName  }))
}
dr.Close();
con.Close();

任何想法如何缩短这个? o.O

最佳答案

您可以将 SQL 编写为:

 string queryString =  "SELECT r2.menu_name "+
                       "FROM recipelist rl "+ 
                          "INNER JOIN recipedb r2 "+
                          "ON rl.menu_ID = r2.menu_ID "+
                       "WHERE r1.stock_ID = '" + stockIDTxtbox.Text + "'";

关于c# - 另一个缩短SQL字符串? C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13983863/

相关文章:

c# - 如何调用需要.Net Core签名的XML SOAP服务?

c# - 类型转换通用对象的方法c#

c# - C# 中的 Double Type 精度不是 15 位吗?

sql - 预演数据解决方案

sql - 为什么 Docker 中的 MSSQL 在 sql 查询中返回 "The last operation was terminated because the user pressed CTRL+C"?

mysql - 查询快建表慢

c# - EmguCV 中 Matrix<TDepth> 和 Mat 之间的根本区别是什么?

MySQL 需要使列不唯一。错误无法删除 'ColumnName' ;检查列/键是否存在

mysql - SQL 从 4 个表的 2 列中选择

php - mysql 将 "prefix"添加到列中的每个值