mysql - MySQL查询根据特定条件从多个表中选择
问题描述
我有两个表如下:
表internetclient (id,full_name,location,phone_number)
表internetclientdetails (incdid,icid,date_sub, date_exp,isPaid,profile_sub)
两个表中的数据如下: 客户端
--------------------------------------------------------
id full_name location phone_number
-------------------------------------------------------
4 Joe Amine beirut 03776132
5 Mariam zoue beirut 03556133
客户订阅
--------------------------------------------------------------------------
incdid icid date_sub date_exp isPaid sub_price
----------------------------------------------------------------------------
6 4 2018-01-01 2018-01-30 0 2000
7 5 2017-01-01 2017-01-30 0 1000
8 4 2018-03-01 2018-03-30 1 50000
9 5 2018-05-01 2019-05-30 1 90000
注意:incid 代表 internetClientDetailsId,icid 代表 internetClientId
问题 我想根据最新的客户订阅日期进行查询,返回客户名称以及所有详细信息,结果应如下所示:
------------------------------------------------------------
full_name client_id date_sub sub_price
------------------------------------------------------------
Joe Amine 4 2018-03-01 50000
Mary 5 2018-05-01 90000
我在做什么
SELECT * FROM client c LEFT JOIN client_subscription c_s on c.id=c_s.client_id
UNION
SELECT * FROM client c RIGHT JOIN client_subscription c_S on c.id=c_s.client_id
WHERE
c.sub_date=(SELECT MAX(sub_date) from client_subscription c_s INNER JOIN client c on c.id=c_s.client_id GROUP BY c_s.client_id
我整晚都在努力。非常感谢任何帮助。
解决方案
嗨,试试下面的示例可能会对您有所帮助。
DECLARE @tblClient AS TABLE (ID INT , Name varchar(100))
DECLARE @tblClientSub As TABLE (id INT,client_id INT,date_sub DATE,sub_price INT)
INSERT INTO @tblClient (id,Name)
VALUES
(1,'Linda'),
(2,'Mary'),
(3,'Joe')
INSERT INTO @tblClientSub(Id,client_id , date_sub , sub_price)
VALUES
(1,1,'2018/01/01',50),
(2,2,'2018/02/01',50),
(3,2,'2018/03/01',30),
(4,2,'2018/04/01',30),
(5,3,'2018/01/01',50),
(6,3,'2018/07/01',50),
(7,1,'2018/02/01',40)
SELECT c.Id,c.Name,cs.date_sub,cs.sub_price
FROM @tblClient c
CROSS APPLY (SELECT TOP (1)date_sub,sub_price
FROM @tblClientSub
WHERE client_id = c.Id
ORDER BY date_sub DESC) cs
推荐阅读
- python-3.x - Convert the Powershell script to Python 3
- r - Topic modeling issues with R
- javascript - 如何使用 scrollTop 或 scrollTo 滚动到 div 的顶部
- javascript - 使用 Vuejs 在 Firebase 存储中获取上传文件的 url
- python - 我可以在 Python 中制作 3D 绘图,其中 Z 不是 X、Y 的函数 - AttributeError: 'Series' object has no attribute 'has_data'
- reactjs - 在反应路由器中连接多个查询参数
- python - 如何计算 groupby / 数据透视表中特定响应的百分比?
- node.js - TypeORM : 在 fetch 语句中对选项 next 的无效使用。实体框架
- python - 如何将参数传递给自定义函数中的函数?
- c# - 如何在 Unity 中使用 C# 更改对象的轴心点?