两次使用相同的 table 时获取结果

Fetching results when using the same table twice

我正在尝试获取一个查询的结果,其中我加入了相同的 table 两次,但我似乎无法弄清楚如何获取结果。我如何 select table 的正确版本?

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

我可以在 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." 从用户 table 获取值以获取正确的 table,但是 returns没什么。

是否根本不可能使用 "SELECT *"?我是否必须预先声明所有变量才能使用相同的 table 两次?

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

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")