现在我正在处理一个查询,对于我的大脑来说,这是一个超载,因为我刚刚开始使用 php 和 mysql。
我有 4 个表“研讨会、订阅、取消订阅、用户”,我需要所有这些表中的一些数据。“研讨会,标题”,“订阅,活动,日期时间”,“用户,名字,姓氏”和“取消订阅,原因”现在我只有一个值可以用来获取所有这些数据,这是现在的研讨会 ID想知道这是否足以从所有表中获取数据。
我真的迷路了,我希望有人能帮助我度过这个烂摊子。
提前致谢
我从内部连接、左连接等中获得了一些知识。
现在我正在处理一个查询,对于我的大脑来说,这是一个超载,因为我刚刚开始使用 php 和 mysql。
我有 4 个表“研讨会、订阅、取消订阅、用户”,我需要所有这些表中的一些数据。“研讨会,标题”,“订阅,活动,日期时间”,“用户,名字,姓氏”和“取消订阅,原因”现在我只有一个值可以用来获取所有这些数据,这是现在的研讨会 ID想知道这是否足以从所有表中获取数据。
我真的迷路了,我希望有人能帮助我度过这个烂摊子。
提前致谢
我从内部连接、左连接等中获得了一些知识。
这看起来怎么样?在ipad上打字,很抱歉错别字。
Select
Sem.title,
Sub.active,
Sub.datetime,
U.firstname,
U.lastname,
Unsub.reason
From
seminar sem
Inner join Subscription sub on sub.seminar_id = sem.id
Inner join user u on sub.user_id = u.id
Left join unsubscription unsub on sub.Id = unsub.subscription_id
Where
Sem.id = your-search-value-here
我假设不会总是取消订阅,所以这是该表的左连接。
所有其他人都是内在的......这意味着没有用户和研讨会的订阅是不完整的。
但是,如果您想要有关研讨会的详细信息,无论用户是否订阅,那么您对用户的加入也应该从 INNER 更改为 LEFT。
如果一个研讨会可以在没有任何订阅的情况下存在,并且您希望此类研讨会包含在结果中,您还应该将订阅加入更改为 LEFT。
请注意,从左联接表中选择的任何字段(在该表上没有为该研讨会获取结果)都将为空。