【问题标题】:How do i display all records from connected groups如何显示连接组中的所有记录
【发布时间】:2014-05-05 12:14:59
【问题描述】:

我的桌子

GROUPS
----------
id | groupName
4    Personal
5    Friends
6    University


Records
----------
id | groupId  | name
1    4          Majid
2    4          Jawad
3    5          Zain
4    5          Mohsin
5    6          Ismail
7    6          Zubair


groups_connected
--------------------
id   |  parent_id  |  child_id
1       4             5
2       5             6

这是我的表格结构,我想在 php 中显示每个组的联系人及其父联系人。 例如。当查看组 5 朋友时,我也想获取 groupId 5 及其父组记录的记录。 以及当有人想查看第 6 组大学时。结果应该是大学组、朋友组和个人组 如果该组未与任何组关联,则只会显示该组记录。

【问题讨论】:

  • 因为你的写作质量,我给了你一个-1和一个删除的标志。
  • 抱歉文笔不佳。这是我的第二个问题。 :)

标签: php mysql database


【解决方案1】:

您需要使用不同的别名加入两次GROUPSRecords

试试这个:

SELECT GC.id,R1.name as parent,G1.groupName as ParentGroup,R2.name as child,G2.groupName as ChildGroup
FROM groups_connected GC FULL OUTER JOIN
     Records R1 ON GC.parent_id = R1.id FULL OUTER JOIN
     GROUPS G1 ON R1.groupId = G1.id FULL OUTER JOIN
     Records R2 ON GC.child_id = R2.id FULL OUTER JOIN
     GROUPS G2 ON R2.groupId = G2.id
 WHERE G1.id = 5 OR G2.id = 5

【讨论】:

  • 这个查询不起作用。我在记录表中有行,但这返回了空结果集:(@Raging Bull
  • @israr:然后更改JOIN的类型。更新了我的答案。
  • @israr:如果您满意,请随时接受答案,以便将来对其他人有所帮助。如果您不知道如何接受,请read this
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-26
  • 1970-01-01
  • 1970-01-01
  • 2018-09-10
  • 2022-01-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多