-2

现在我正在处理一个查询,对于我的大脑来说,这是一个超载,因为我刚刚开始使用 php 和 mysql。

我有 4 个表“研讨会、订阅、取消订阅、用户”,我需要所有这些表中的一些数据。“研讨会,标题”,“订阅,活动,日期时间”,“用户,名字,姓氏”和“取消订阅,原因”现在我只有一个值可以用来获取所有这些数据,这是现在的研讨会 ID想知道这是否足以从所有表中获取数据。

我真的迷路了,我希望有人能帮助我度过这个烂摊子。

提前致谢

我从内部连接、左连接等中获得了一些知识。

这是我的 ERD http://img594.imageshack.us/img594/8923/erdk.png

4

1 回答 1

2

这看起来怎么样?在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。

请注意,从左联接表中选择的任何字段(在该表上没有为该研讨会获取结果)都将为空。

于 2013-03-27T12:58:15.273 回答