Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 两次使用同一个表时获取结果_Mysql_Sql_Asp Classic - Fatal编程技术网

Mysql 两次使用同一个表时获取结果

Mysql 两次使用同一个表时获取结果,mysql,sql,asp-classic,Mysql,Sql,Asp Classic,我正在尝试获取一个查询的结果,在这个查询中,我两次加入了同一个表,但我似乎不知道如何获取结果。如何选择表的正确版本 我正在创建一个休假系统,用户可以请求休假日期,并让另一个用户接受或拒绝。所以我加入用户表两次,以显示谁请求了它,以及谁处理了请求 我可以在MySQL中获得结果,它列出了所有内容,但是使用ASP Classic获得结果的代码似乎不起作用 这是我的SQL查询和获取数据的代码: sql = "SELECT * FROM vacation LEFT JOIN user ua ON vaca

我正在尝试获取一个查询的结果,在这个查询中,我两次加入了同一个表,但我似乎不知道如何获取结果。如何选择表的正确版本

我正在创建一个休假系统,用户可以请求休假日期,并让另一个用户接受或拒绝。所以我加入用户表两次,以显示谁请求了它,以及谁处理了请求

我可以在MySQL中获得结果,它列出了所有内容,但是使用ASP Classic获得结果的代码似乎不起作用

这是我的SQL查询和获取数据的代码:

sql = "SELECT * FROM vacation LEFT JOIN user ua ON vacation_user = ua.user_id LEFT JOIN user ub ON vacation_granted_id = ub.user_id WHERE 1"
Set RS = Cn.Execute(sql)

uname = RS("ua.user_name")
gname = RS("ub.user_name")
我希望可以使用“ua.”和“ub.”从用户表中获取值,以获取正确的表,但这不会返回任何结果


难道不能使用“选择*”吗?我必须预先声明所有变量才能使用同一个表两次吗?

您需要为每个变量提供单独的别名:

SELECT v.*, u.user_name, ug.user_name as granted_user_name
FROM vacation v LEFT JOIN
     user u
     ON v.vacation_user = u.user_id LEFT JOIN
     user ug
     ON v.vacation_granted_id = ug.user_id ;
然后,当然,使用以下名称获取它们:

uname = RS("user_name")
gname = RS("granted_user_name")

令人惊叹的。v.*实际上使它更容易处理。我没想到。我是一个习惯的生物,我不喜欢被限制必须事先声明我需要什么变量,但在这种情况下,这就像我所希望的那样有效。对你的帖子进行了小的编辑,你写了“user ug”,而它本应该是“user uv”。因为我实际上还需要申请人的用户名表中的一些东西,所以我测试了使用这个例子中的u.*,对于任何阅读此文并对同样的事情感到疑惑的人来说都是成功的。