行明智合并两个不同的表

时间:2014-03-07 05:12:38

标签: php mysql

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

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

Exapmle:

图片表

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概念。 我的片段是

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

工作正常。但我的问题是还有其他解决方案吗?在此先感谢。

1 个答案:

答案 0 :(得分:0)

你可以做一个简单的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