我试图构建一个查询,该查询将选择出租属性的所有租户。每个属性可以有多个租户,每个租户可以移动到不同的属性。只有ID匹配时才返回最大加入结果
这里的用户属性表的外观(部分),如:
User ID | Property ID | Move In Date | Move Out Date
----------------------------------------------------------
224 | 33A | 2015-11-01 | NULL
224 | 36B | 2015-11-15 | NULL
226 | 33A | 2015-11-01 | NULL
在上面的例子中User 224
搬进财产33A
1日,然后于15日物业36B
。对于这个问题,例如,我假设move_out_date
列没有正确填充日期。在这种情况下,我需要一个能绕过这个问题的查询。
这里就是我有我的查询到目前为止:
SELECT
u.user_email, p.user_fname, p.user_lname, r.move_in_date AS occupant_date
FROM
user u
LEFT JOIN
user_profile p ON p.user_id = u.user_id
LEFT JOIN
(
SELECT
user_id, property_id, move_in_date
FROM
user_property
WHERE
move_out_date IS NULL
ORDER BY
move_in_date DESC
) r ON r.user_id = u.user_id
WHERE
r.property_id = '33A'
GROUP BY
u.user_id
ORDER BY
r.move_in_date ASC, p.user_fname ASC
该查询返回每个乘客信息,并在移动日期。对于属性33A
它返回用户224
和226
,但我只想返回用户226
,因为技术上用户224
已从该属性移出。
目前输出表看起来像这样:
User ID | Property ID | Move In Date | Move Out Date
----------------------------------------------------------
224 | 33A | 2015-11-01 | NULL
226 | 33A | 2015-11-01 | NULL
User ID | Email | First Name | Last Name | Occupant Date
---------------------------------------------------------------------
224 | [email protected] | Kevin | Doe | 2015-11-01
226 | [email protected] | Tom | Smith | 2015-11-01
但我只希望结果对用户226
专门为物业ID 33A
。最后,这...
User ID | Email | First Name | Last Name | Occupant Date
---------------------------------------------------------------------
226 | [email protected] | Tom | Smith | 2015-11-01
这是可能做一个查询,或者我需要做几个?我很感激这方面的帮助!获取当前租户给定属性
表示您需要--->'226 | 33A | 2015-11-01 | NULL'?只有 –
如果共享输出表,它会很好。 –
你的表中是否有任何ID列(自动递增)? –