【发布时间】:2018-04-11 23:01:45
【问题描述】:
我浏览了有关此主题的一些答案,但他们都建议使用 UNION 查询,我很确定这不是我的方法,因为我尝试从中提取数据的表根本不同。我会尽力解释。
我有三张桌子:
- 客户
- 约会
- 购买
我希望用户能够选择一个客户并获得包含以下信息的报告:
- 所有客户信息(姓名、电子邮件、地址等)
- 客户预订的所有约会
- 客户进行的所有购买
当客户在数据库中没有约会或购买时出现问题,因为我目前使用的单个查询执行以下操作:
SELECT (info needed)
FROM (Customer INNER JOIN Purchase ON Customer.ID = Purchase.customerID)
INNER JOIN Appointment ON Customer.ID = Appointment.customerID;
如果客户在 Purchase 或 Appointment 表中没有其 customerID,则生成的查询将返回一个空表,因为 JOIN 将无法看到表之间的任何共享数据。
我不确定最好的行动方案是什么,我希望这里的人可以阐明在这种情况下的最佳做法是什么,在此先感谢。
建议进行编辑以添加一些示例数据和所需的结果。
客户
ID Name email address
1 Bob bob@gmail.com 70 bowman st.
2 Tom tom@gmail.com 44 shirley av.
3 Mary mary@gmail.com 4 goldfield rd.
购买
customerID itemID price
1 23 100
1 24 150
3 34 85
约会
customerID date
1 2/10
2 3/10
3 3/10
现在,如果我使用 customerID = 2 进行查询,我想要以下信息
客户信息
name email address
Tom tom@gmail.com 44 shirley av.
购买
empty
约会
date
3/10
【问题讨论】:
-
编辑您的问题并提供示例数据和所需的结果。