【问题标题】:How to get data from multiple tables? [closed]如何从多个表中获取数据? [关闭]
【发布时间】:2013-07-27 09:31:39
【问题描述】:

我正在使用 PHP。 我有以下表格

1)Posts

||  post_id  |  post  |  date_posted  ||


2) Photo

||  photo_id  |  photo  |  date_posted||


3) Video

||  video_id  |  video  |  video_link  |  date_posted||

我想检索所有表中存在的所有行并按 date_posted 排序。

我想稍后在检索行后区分哪一行是视频,哪一行是帖子

我该怎么做?

【问题讨论】:

  • 您可以使用UNION ALL,但post、photo 和video 列的数据类型是什么?
  • 所以这些表之间根本没有关系,你只想把它们一起输出?你能展示一下到目前为止你可能尝试过的 SQL 吗?
  • 没有关系只是按发布顺序输出

标签: php mysql sql oracle


【解决方案1】:
SELECT post_id as id, post as data, date_posted FROM Posts
UNION ALL
SELECT photo_id, photo, date_posted FROM Photo
UNION ALL
SELECT video_id, video, date_posted FROM Video
ORDER BY date_posted DESC

也许?..

【讨论】:

  • 这不是我想要的,这个查询只是在所有表的别名下填充我如何区分哪个是视频,哪个是帖子
  • 那么你应该使用@Curt的答案。
【解决方案2】:
 (
   SELECT video_id   AS id,
          'Post'     AS content_type,
          post       AS content,
          date_posted
     FROM Posts

        UNION ALL

   SELECT photo_id   AS id,
          'Photo'    AS content_type,
          photo      AS content,
          date_posted
     FROM Photo

           UNION ALL

   SELECT video_id   AS id,
          'Video'    AS content_type,
          video      AS content,
          date_posted
     FROM Video
 )
 ORDER BY date_posted DESC

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-26
    • 2012-02-27
    • 2021-12-08
    • 1970-01-01
    • 2019-02-20
    • 1970-01-01
    • 2021-09-19
    相关资源
    最近更新 更多