MySQL的最大和最小说明

我的问题是让某人解释其工作原理。我在ItPrice列中获得了MAX和MIN。另一位学生向我展示了这种方法,但是无法真正解释发生了什么。我知道联合只是重复相同的代码,而将>符号翻转以返回min而不是max,因此我只需要进行一半的遍历。问题在这里:

  

编写查询以列出与   最高和最低的行程价格。

select  triptype.tid,triptype.tname,it1.itprice
    from triptype,custitinerary it1
    where triptype.tid = it1.tid 
    and it1.itprice > ALL
        (select itprice from custitinerary it2 
        where it1.ItPrice != it2.Itprice)
Union
select  triptype.tid,custitinerary it1
    where triptype.tid = it1.tid 
    and it1.itprice < ALL
        (select itprice from custitinerary it2 
        where it1.ItPrice != it2.Itprice);

MySQL的最大和最小说明

clmmd996755680 回答:MySQL的最大和最小说明

我无法理解所提供的sql。但是,解决问题的方法可能如下:

我将假定您具有以下表格:

行程类型表:

id,tripType

初始表:

id,itineraryPrice,tripType_id,

然后,您的查询可获取与行程价格相关的最高和​​最低tripTypes,可计算如下:

首先查询以获得最高TripType

SELECT tripType.id,tripType.name,MAX(itinerary.itineraryPrice) as 'price'
FROM tripType,itinerary
WHERE itinerary.tripType_id = tripType.id

这将导致以下行:

------------------------------
| id   | name    | price     |
|------|---------|-----------|
| 42   | Sports  | 16000.00  |
------------------------------

第二次查询以获得最低的TripType

SELECT tripType.id,MIN(itinerary.itineraryPrice) as 'price'
FROM tripType,itinerary
WHERE itinerary.tripType_id = tripType.id

这将导致以下行:

--------------------------------
| id   | name      | price     |
|------|-----------|-----------|
| 11   |Adventure  | 2000.00   |
--------------------------------

最后一步

使用UNION将两行(查询)合并为一个结果:

SELECT tripType.id,itinerary
WHERE itinerary.tripType_id = tripType.id
UNION
SELECT tripType.id,itinerary
WHERE itinerary.tripType_id = tripType.id

最后一步将为您提供最终结果,如下所示:

-------------------------------
| id   | name      | price     |
|------|-----------|-----------|
| 42   | Sports    | 16000.00  |
|------|-----------|-----------|
| 11   | Adventure | 2000.00   |
-------------------------------
本文链接:https://www.f2er.com/3070845.html

大家都在问