2013-02-26 60 views
0

我正在使用rails3。我有兩個表user_shift和其他是shift表。我想要特定用戶的當前轉移。 user_shift表字段是從兩個表中取數據

`id`, 
`from`, 
`to`, 
`shift_id`, 
`user_id`, 
`created_at`, 
`updated_at` 

shift表字段

`id`, 
`start_time`, 
`end_time`, 
description`, 
`created_at`, 
`updated_at` . 
+0

請通過加入...您正在使用哪個數據庫 – 2013-02-26 07:53:26

+0

@AnuragShukla :這已經是規格在問題中提到。 mysql – Arion 2013-02-26 07:54:20

+0

我知道,但它是特例@AnuragShukla – Abhishek 2013-02-26 08:19:33

回答

3

MySQL的加入是我們的最佳解決方案。

SELECT * FROM shift LEFT JOIN user_shift ON shift.id = user_shift.shift_id 

移與用戶

SELECT * FROM shift LEFT JOIN user_shift ON shift.id = user_shift.shift_id WHERE user_shift.user_id = LOGGEDINUSERID 
+0

這個查詢是好的,但我需要當前的轉變意味着當用戶登錄時,他可以看到當前的轉變。根據你的查詢,他可以看到所有班次數據哈哈:) – Abhishek 2013-02-26 08:08:22

+0

@Abhishek現在看到我已經添加了新的查詢。 – 2013-02-26 08:10:07

+0

嘿男人!假設特定用戶有多個班次,那麼他怎樣才能獲得最新的當前班次 – Abhishek 2013-02-26 08:16:42

0

嘗試此查詢

SELECT us.id, s.start_time, s.end_time 
FROM user_shift us, shift s 
WHERE us.shift_id = s.id AND us.id=?; 
+0

你爲什麼不使用'JOIN':s? – Arion 2013-02-26 07:58:17

+0

我已經使用了連接而沒有指定連接關鍵字。 – Meherzad 2013-02-26 08:00:24

+0

這個查詢是好的,但我需要當前的轉變意味着當用戶登錄時,他可以看到當前的轉變。根據你的查詢,他可以看到所有班次數據。 – Abhishek 2013-02-26 08:10:52