我如何将此查询转换为子查询SQL

时间:2018-12-06 06:02:24

标签: mysql sql subquery

如何更改此查询,在此我想将max转换为子查询,当我输入sql时,唯一会出现的是id和名字。

SELECT staff.staff_id,staff.firstname,max(payment.amount)
from payment ,staff
where payment.staff_id=staff.staff_id

3 个答案:

答案 0 :(得分:0)

使用显式连接

SELECT staff.staff_id,staff.firstname,max(payment.amount)
from payment join staff
on  payment.staff_id=staff.staff_id

但是我想你想要

   SELECT staff.staff_id,staff.firstname,p.amount
    from payment p join staff
    on  p.staff_id=staff.staff_id
    where p.amount= select max(amount) from payment 

答案 1 :(得分:0)

您可以尝试使用相关子查询

SELECT staff.staff_id,staff.firstname
from payment inner join staff
on payment.staff_id=staff.staff_id where payment.amount in (select max(payment.amount) from payment)

答案 2 :(得分:0)

JOIN到(相关)子查询:

SELECT staff.staff_id, staff.firstname,
       (SELECT MAX(payment.amount) 
        FROM payment
        WHERE payment.staff_id = staff.staff_id)
FROM staff