我有几个表正在链接。我有一个users
表:
+----------+
| Users |
|----------|
| id |
| email |
| password |
| etc... |
+----------+
profiles
表
+-------------+
| Profiles |
|-------------|
| profile_id |
| user_id |
| first_name |
| etc... |
+-------------+
和Subscriptions
表:
+-----------------+
| Subscriptions |
|-----------------|
| subscription_id |
| user_id |
| start_date |
| end_date |
+-----------------+
data
看起来像这样:
Users:
------
id: 1
email: Josh@example.com
password: j2jahfu7329 (this is hashed)
Profiles:
---------
profile_id: 1
user_id: 1
first_name: Josh
Subscriptions (There can be multiple for a single user and they can backdate):
-------------
subscription_id: 1
user_id: 1
start_date: 2015/03/01
end_date: 2015/04/01
subscription_id: 2
user_id: 1
start_date: 2015/04/01
end_date: 2015/05/01
subscription_id: 3
user_id: 1
start_date: 2015/02/01
start_date: 2016/02/01
我需要循环访问并返回数据库中的每个用户及其个人资料详细信息,并根据latest
返回subscription_id
订阅。
在过去的几个小时里,我尝试了很多方法,而且我得到的最接近的是:
SELECT *
FROM users
INNER JOIN (SELECT max(subscriptions.subscription_id), subscriptions.end_date, subscriptions.user_id FROM subscriptions WHERE subscriptions.user_id = users.id) AS subs
ON subs.user_id = users.id
但是只返回数据库中的FIRST用户,即使是不属于该用户的最新订阅ID。
我试图在Laravel中这样做,但现在开始只是在phpmyadmin中编写查询以使其正确。
我需要做些什么来获得我期待的结果? (结果如下)
id: 1
email: josh@example.com
password: j2jahfu7329
profile_id: 1
first_name: Josh,
subscription_id: 3
提前致谢!