【问题标题】:SQL SELECT COMMAND WITH JOIN in C#C# 中的 SQL SELECT COMMAND WITH JOIN
【发布时间】:2014-04-05 14:59:30
【问题描述】:
CourseRepeater cr = new CourseRepeater();
List<CourseRepeater> course = new List<CourseRepeater>();
string sql = "SELECT u.Name, u.Surname, c.Name, c.ClosingDate, c.BeginDate FROM Course AS c, JOIN Users AS u on u.UserID=c.UserID";
DataTable dt = DataBase.SQLSelect(sql);
if (dt.Rows.Count != 0)
{
    cr.Name = dt.Rows[0]["Name"].ToString(); // ?
}

我有包含SQLSelect()Database 类。这里没有问题。 我的问题是这样的:如果我想在这一行得到Users.Namedt.Rows[0]["Name"],我应该写dt.Rows[0]["Name"]dt.Rows[0]["u.Name"]

【问题讨论】:

  • 但我也有Course.Name
  • 浏览器如何知道我的意思是它们中的哪一个。
  • 好吧,我想如果您将c.Name 设为c.Name AS CourseName,那将是一个更好的做法
  • 您应该在查询中为它们设置别名。 dt.Rows[0]["u.Name"] 真的有效吗?您可以使用序数位置来获得您想要的 dt.Rows[0][0],但那样脆弱。再次别名为 u.Name UsersName,c.Name CourseName 是更好的选择。
  • "SELECT u.Name AS UserName, u.Surname, c.Name AS CourseName , c.ClosingDate, c.BeginDate FROM Course AS c, JOIN Users AS u on u.UserID=c.UserID" 所以?

标签: c# sql select join alias


【解决方案1】:

不妨将评论移至答案。

您应该为查询中的字段设置别名。

另一个选项更脆弱或不那么清晰。

SELECT u.Name UsersName, c.Name CourseName FROM...

【讨论】:

  • SELECT u.Name UsersNameSELECT u.Name AS UsersName之间没有区别吗?
  • 至少在 SQL Server 中没有。您没有指定 RDBMS。 SE:ECT UsersName = u.Name 也是等价的。试试这个,例如:SELECT 1 One,2 AS Two, Three = 3
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多