我想在表格中找到最早的日期。如何将其添加到连接语句中:
SELECT date FROM table1 WHERE orderno = 222 ORDER BY date LIMIT 1
Orderno 222
可以在table1
中有1- *多行,这就是我使用LIMIT 1
的原因
我有这些表的表:
订单 订单行 ProductionDate
订单可以有1- * ProductionDates,所以当我加入ProductionDate时,我想找到最早的日期。
所以我对sql语句的猜测是这样的:
SELECT * FROM Order
LEFT JOIN (
IN SELECT date FROM ProductionDate ORDER BY date ASC LIMIT 1)
但这不起作用。我想知道我应该改变什么才能让它发挥作用?
答案 0 :(得分:2)
我不确定MySQL是否支持LIMIT在派生表中,但如果确实如此,语法应为:
SELECT ord.*
FROM `Order` ord
LEFT JOIN (SELECT date FROM ProductionDate ORDER BY date ASC LIMIT 1) t
ON t.date = ord.date
请注意,order
是保留字,因此您需要正确引用它。要么使用MySQL可怕的反引号(见上文),要么 - 如果您将服务器配置为标准兼容 - 使用这样的双引号:"order"
答案 1 :(得分:0)
SELECT `date`
FROM `table1`
INNER JOIN `table1`.`date` ON `table2`.`date`
ORDER BY date ASC LIMIT 1
这是你的意思吗?