[英]MySQL - Combine with SELECT two tables
我有這些表:
reg_movs:
regmovs_id id_car date status
1 1 2014-02-02 16:00:00 0
2 1 2014-02-02 16:12:00 5
3 2 2014-02-02 16:22:03 0
4 2 2014-02-02 16:45:14 5
service_detail:
id id_Car date_updated price
1 1 2014-02-02 16:12:00 45.00
2 2 2014-02-02 16:45:14 30.00
我的意思是,當status=0
,它將在我的SELECT QUERY
設置開始時間。 並且,當status=5
,它將是結束時間。
我該如何進行這樣的查詢:
id_car date start end price
1 2014-02-02 16:00:00 16:12:00 45.00
2 201-02-02 16:22:03 16:46:14 30.00
您首先需要對reg_movs進行自聯接,以將兩行合並為單行。 然后,您需要使用service_detail將其內部加入,以選擇汽車的價格。 以下是基於為架構提供的信息的示例查詢。
SELECT t1.id_car
, DATE_FORMAT(t1.date, '%Y-%m-%d') AS date
, DATE_FORMAT(t1.date, '%T') AS start
, DATE_FORMAT(t2.date, '%T') AS end
, service_detail.price
FROM reg_movs AS t1
inner join reg_movs AS t2 on t1.id_car=t2.id_car AND t1.status=0 AND t2.status=5
inner join service_detail ON t1.id_car=service_detail .id_car
如果要顯示沒有結束時間的記錄(即表中只有一條狀態為0的記錄),則可能需要更改查詢以使用左聯接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.