【问题标题】:retrieving information from 3 tables从 3 个表中检索信息
【发布时间】:2014-07-04 22:15:41
【问题描述】:

我有三张桌子:

users:
+----------+-----------------------------+-----------+
| users_id | user detail                 | otherID   | 
+----------+-----------------------------+-----------+
|        1 | user name or details        |         1 |
|        2 | user name or details        |         1 |
|        3 | user name or details        |         4 |
|        4 | user name or details        |         1 |
|        5 | user name or details        |       21  |
|        6 | user name or details        |         2 |
+----------+-----------------------------+-----------+
photos:
+----------+----------------+-----------+--------+---------+--------------+
| photosID | url            |    title  | userID | likes   | remarksID    |
+----------+----------------+-----------+--------+---------+--------------+
|      1   |       7459.JPG |   TITLE   |      1 |     150 |       255    |
|      2   |       7510.JPG |   TITLE   |      1 |     146 |       247    |
|      3   |       7460.JPG |   TITLE   |      2 |       2 |        56    |
+----------+----------------+-----------+--------+---------+--------------+

remarks:
+-----------+---------------------------------------+---------+------------+
| remarksID | remark                                | userID  | photoID    |
+-----------+---------------------------------------+---------+------------+
|         1 | REMARKS for PhotoID 1                 |       1 |          1 |
|         2 | REMARKS for PhotoID 1                 |       1 |          1 |
|         3 | REMARKS for PhotoID 1                 |       1 |          1 |
|         4 | REMARKS for PhotoID 2                 |       1 |          2 |
|         5 | REMARKS for PhotoID 2                 |       1 |          2 |
|         6 | REMARKS for PhotoID 3                 |       2 |          3 |
+-----------+---------------------------------------+---------+------------+

我正在尝试提取给定用户照片的评论,但只希望照片出现一次,但要为每张用户照片显示照片的所有相关评论。 如果没有备注,则只显示没有备注的照片。

网页上的布局应该是这样的-

------------------------------------
Photograph 1
         Remarks 1
         Remarks 2
         Remarks 1
------------------------------------
Photograph 2
         NO remarks for photo
------------------------------------
Photograph 3
         Remarks 1
         Remarks 2
         Remarks 3
         Remarks 4
------------------------------------
Photograph 4
         Remarks 1
         Remarks 2
------------------------------------

【问题讨论】:

  • 你在为哪一点苦苦挣扎?
  • 正如 Charles Bretana 已经提到的那样,您正在寻找的显示模式无法使用 mysql,应用程序应该自己完成。但是,要缩小结果集,您可以使用 group_concat() 获取用户照片的所有备注,然后在应用程序级别读取结果集,然后拆分备注并生成视图。

标签: mysql database join


【解决方案1】:

我的假设是否正确,您的困难是如何让数据库做到这一点?如果是这样,那么答案是此功能(格式化数据)通常不是(或不应该)由数据库负责。从数据库中获取照片作为一个结果集,然后在另一个中获取匹配的 cmets,然后让您的应用程序或报告工具按照您想要的方式格式化数据。

【讨论】:

  • 嗨,我理解问题的格式是问题的检索。我一直在尝试 LEFT JOIN,但看到一篇关于 SUB SELECT 语句的帖子,不确定我是否走错了路。
  • 我的建议是不要尝试在单个 sql 语句中连接数据库,为照片和 cmets 运行单独的语句,并在应用程序中连接和格式化数据和/或您的报告工具
  • 好的,所以我已经把事情复杂化了,然后大声笑非常感谢您的建议。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-06
  • 1970-01-01
  • 1970-01-01
  • 2017-10-11
  • 2022-01-01
  • 1970-01-01
相关资源
最近更新 更多