我需要对多表查询进行排序,这是一个分组,可以在不执行子查询的情况下完成吗?

时间:2011-07-15 15:12:53

标签: php mysql

这是我的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排序。它列出了一条记录(正确),但没有列出价格顺序(应显示来自fares.offer的最低值)

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

巡航表中包含所有邮轮信息,票价表中列出了该邮轮上每个客舱的价格,并通过cruises.id和fares.cruise_id

相互关联。

所以我加入了表格,没问题,但是我想要一张包含邮轮标题,描述和票价表中最低票价的记录。

记录集会读取类似

的内容

环游英国,只需329英镑

希望这对我正在努力实现的目标有意义!

TA

Rich:)

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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