2013-02-26 59 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