这是我的应用程序中的数据库模型。 使用php我正在创建所有订单列表
SELECT id, date from orders
之后,我使用另一个SELECT来选择此订单的最新修订版本的数据
SELECT name, material, producer, color from revisions WHERE id_order = id ORDER BY date LIMIT 1
然后我收到所有订单,只提供订单的最新修订信息。
是否可以创建SELECT以仅在一个查询中执行此操作?我是JOINing表的新手..模型很容易创建,但我不知道如何在一个查询中选择所有这些信息。我需要这样的东西:
SELECT id, date (order table), name (revision table),
name of material (material table),
name of producer (producer table), name of color (color table).
这将创建所有订单的列表,其中包含仅来自最新修订版的一些信息。
感谢所有回复
答案 0 :(得分:0)
您需要的是两个表的连接。
SELECT o.id, o.date, r.name, r.material, r.producer, r.color
FROM orders o
JOIN revisions r ON r.id_order = o.id
ORDER BY date
LIMIT 1
答案 1 :(得分:0)
此方法汇总了修订,为给定订单选择最后一个的日期。然后它将这些信息加入:
SELECT r.name, r.material, r.producer, r.color
from revisions r join
(select r.id_order, max(date) as maxdate
from revisions r
group by r.id_order
) rmax
on rmax.id_order = r.id_order and
rmax.maxdate = r.date;