【问题标题】:Row wise merge two different table按行合并两个不同的表
【发布时间】:2014-04-10 02:59:16
【问题描述】:

我有两张不同的桌子。一张是file,另一张是image。如果上传的内容是图像,则内容详细信息存储在图像表中。其余(如 doc、pdf 等)内容存储在文件表中。两者都由folder_id 标识。

现在我想根据给定的 folder_id 列出文件和图像。

例子:

图像表

image_id   description     img_orig        img_sm       folder_id
   1         Image one   img_one.png     img_one.png        1
   2         Image_two   img_two.png     img_two.png        1
   3         Image_three img_three.png   img_three.png      2

文件表

file_id       description       file_name    file_size   folder_id  file_type
    1          file_one          one.txt       11KB            1      text/plain
    2          file_two          two.html       2KB            1      text/html

预期的输出表是

  1         Image one   img_one.png     img_one.png         1      image
  2         Image_two   img_two.png     img_two.png         1      image
  1         file_one    one.txt          11KB               1      text/plain
  2         file_two    two.html         2KB                1      text/html

我在 MYSQL 中尝试过UNION ALL 概念。 我的sn-p是

SELECT image_id as id,description,img_orig as name, img_sm as sm_size,folder_id,CONCAT('image','') as type 
UNION ALL
SELECT folder_id as id,description,file_name as name, file_size as sm_size,folder_id,file_type as type 
WHERE folder_id=1

它工作正常。但我的问题是对此有任何其他解决方案吗?提前致谢。

【问题讨论】:

标签: php mysql


【解决方案1】:

您可以进行简单的 JOIN。您可以从任何表中提取任何列。只需确保在列前加上表名或别名,如下所示。

Select I.image_id, I.description as img_desc, 
F.description as file_desc, F.folder_id
From image I, file F
where I.folder_id = F.folder_id 

【讨论】:

  • 我试过你的sn-p。但只有您是从图像表中选择的值。我也想从文件表中获取值
  • 基本上我认为 JOIN 用于合并表的列
  • @AjithaMs 那样的话,除了UNION,我想不出别的了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-15
  • 2014-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-05
相关资源
最近更新 更多