2013-03-11 63 views
0

我有一張桌子卡列斯預訂,它包含每輛車的所有預訂。 並且我有一個reservationStatus字段,意思是1 =排定2 =等待,0 =取消。如何選擇下一個預訂Mysql?

所以我想根據當前未決記錄從表格中選擇下一個保留日期。

所以,當我運行這段代碼

SELECT dateFrom, dateTo FROM reservation WHERE reservationStatus = 2 

,這將使我目前正在申請預約。現在從這裏我想返回dateFrom字段小於或等於之前的dateTo的第一條記錄?

這可以在一個select語句中完成嗎?我知道這可以使用2個單獨的語句與一些PHP,但我想知道它是否可以在一個查詢中寫入MySql?

編輯 - 位新加入的問題

這是我如何與2個查詢和一些PHP解決它。

$sql = $db->query('SELECT dateTo FROM reservation WHERE Vehicle_id='. $id . ' AND reservationStatus = 2 LIMIT 1 '); 
$first = $sql->fetch_assoc(); 
$sql->free(); 
$sql = $db->query('SELECT dateFrom FROM reservation WHERE Vehicle_id='. $id . ' AND reservationStatus = 1 AND (dateFrom > \''.$first['dateTo'] .'\') ORDER BY dateFrom ASC '); 

$row = $sql->fetch_assoc(); 

$month = strtotime($first['dateTo']); 
$end = strtotime($row['dateFrom']); 

回答

0

嘗試

SELECT dateFrom, dateTo FROM reservation WHERE reservationStatus = 2 
ORDER BY dateFome DESC 
LIMIT 1 

dateFrom(最新的在前)命令的結果,只是讀取第一行。

0

使用與datefrome秩序,限制1. 這會給你的結果需要

SELECT dateFrom, dateTo reservation WHERE reservationStatus = 2 
ORDER BY dateFome DESC 
LIMIT 1 
0

在這裏你去:

SELECT dateFrom, dateTo FROM reservation WHERE reservationStatus = 2 
ORDER BY dateFrom DESC 
LIMIT 1 
+0

我想我錯過-解釋的問題。請檢查我的帖子,因爲我添加了2個獨立查詢的解決方案。我只想將它更好地融入到一個查詢中。 – Jaylen 2013-03-11 05:17:24