我需要排序一个多表查询,即分组,它可以不做子查询


I need to sort a multi-table query, that is grouped, can it be done without doing a subquery?

这是我的php MySQL语法

$query_cruises = "SELECT * FROM cruises, fares WHERE cruises.id = fares.cruise_id AND cruises.offer = 'Y' GROUP BY cruises.code ORDER BY fares.offer ASC";

问题是记录集没有按票价。报价排序。它列出了一条记录(正确),但不在价格顺序中(应该显示fares.offer中的最低值)

所以我有两张桌子,邮轮和票价。

cruises表包含所有邮轮信息,票价表包含该邮轮上每个客舱的价格列表,这些价格通过邮轮相互关联。Id和fares.cruise_id

所以我连接了这些表,没有问题,但是我想要一个包含邮轮名称、描述和票价表中最低票价的记录。

记录集将读取类似

的内容。

环游英国,起价仅329英镑

希望这对我想要实现的目标有意义!

助教

丰富:)

SELECT  cruises.*,
        MIN(fares.offer) AS min_fare
FROM    cruises
JOIN    fares
ON      fares.cruise_id = cruises.id
WHERE   cruises.offer = 'Y'
GROUP BY
        cruises.code
ORDER BY
        min_fare
SELECT c.code, min(f.offer)
FROM cruises c , fares f 
WHERE c.id = f.cruise_id 
AND c.offer = 'Y' 
GROUP BY c.code