我正面临着sql查询问题。 以下是表格结构
我们有表tbllogin,我们维护所有类型的用户,如用户,管理员和供应商列 userId(pk),姓名,电子邮件。
我们有另一个表tbltransaction,我们维护用户列的事务,如
id(pk)userId(fk-> tbllogin)vendorId(fk-> tbllogin)
我想根据userId和tbltransaction的vendorId将名称显示为userName,名称为vendorName,将电子邮件显示为来自tbllogin的vendorEmail
这里tbltransaction中的两列引用了两个相同的表tbllogin
请帮我解决此查询问题。
我还附上了样本表结构的图像,以便更清晰 tbllogin tbltransaction
答案 0 :(得分:0)
这样的东西?
SELECT u.Name as userName, v.Name as vendorName, v.email as vendorEmail
FROM tbltransaction t
LEFT JOIN tbllogin u
ON t.userId = u.userId
LEFT JOIN tbllogin v
ON t.vendorId = v.userId
答案 1 :(得分:0)
这应该有效:
select Id, lu.name as userName, lv.name as vendorName, lv.email as vendorEmail
from tbltransaction as t
join tbllogin as lu on (lu.Id = t.userId)
join tbllogin as lv on (lv.Id = t.vendorId)