MYSQL 将连接转换为子查询
MYSQL Convert join to subquery
我正在尝试将连接查询转换为没有连接并仅使用子查询,但对于我来说,我想不出办法。
表格:
使用这些表,我尝试执行以下操作:使用子查询获取 FirstName、LastName 和注册费用最高的与会者。
此查询使用联接生成该结果。
SELECT FirstName, LastName, SUM(tblregistration.RegistrationPaid) AS `AmountPaid`
FROM tblregistration, tblattendees
WHERE tblregistration.AttendeeID = tblattendees.AttendeeID
GROUP BY tblregistration.AttendeeID
ORDER BY `AmountPaid` DESC
LIMIT 5
有办法吗?谢谢
这应该有效:
SELECT
(SELECT FirstName FROM tblattendees WHERE tblregistration.AttendeeID = tblattendees.AttendeeID) AS `FirstName`,
(SELECT LastName FROM tblattendees WHERE tblregistration.AttendeeID = tblattendees.AttendeeID) AS `LastName`,
SUM(tblregistration.RegistrationPaid) AS `AmountPaid`
FROM tblregistration
GROUP BY tblregistration.AttendeeID
ORDER BY `AmountPaid` DESC
LIMIT 5
我正在尝试将连接查询转换为没有连接并仅使用子查询,但对于我来说,我想不出办法。
表格:
使用这些表,我尝试执行以下操作:使用子查询获取 FirstName、LastName 和注册费用最高的与会者。
此查询使用联接生成该结果。
SELECT FirstName, LastName, SUM(tblregistration.RegistrationPaid) AS `AmountPaid`
FROM tblregistration, tblattendees
WHERE tblregistration.AttendeeID = tblattendees.AttendeeID
GROUP BY tblregistration.AttendeeID
ORDER BY `AmountPaid` DESC
LIMIT 5
有办法吗?谢谢
这应该有效:
SELECT
(SELECT FirstName FROM tblattendees WHERE tblregistration.AttendeeID = tblattendees.AttendeeID) AS `FirstName`,
(SELECT LastName FROM tblattendees WHERE tblregistration.AttendeeID = tblattendees.AttendeeID) AS `LastName`,
SUM(tblregistration.RegistrationPaid) AS `AmountPaid`
FROM tblregistration
GROUP BY tblregistration.AttendeeID
ORDER BY `AmountPaid` DESC
LIMIT 5