mysql - 连接两个表文件夹和图像

标签 mysql sql select group-by union

       album
------------------
  aid  |  aname  |  
------------------
  1   | album1   | 
  2   | album2   | 
  3   | album3   | 
  4   | album4   | 
------------------

       image
---------------------------------------
  iid  |  title  |  albumid |  imgurl
---------------------------------------
  1   | img1     |   3      |  image3.jpg
  2   | img2     |   1      |  image1.jpg
  3   | img3     |   2      |  image4.jpg
  4   | img4     |   0      |  image5.jpg
---------------------------------------

我有两个表专辑和图像。在图像表中albumid=0表示图像不属于任何文件夹。我需要带有所有文件夹名称和文件夹内图像数量的 imageurl,如 mysql 中的下表。

示例:

----------------------------------------------------------------
  id=aid+iid  |  name= aname +title | imgurl          | countimg
----------------------------------------------------------------
  1           | album1              |       null      |  1
  2           | album2              |       null      |  1
  3           | album3              |       null      |  1
  4           | album4              |       null      |  0
  4           | img4                |    image5.jpg   |  0
-----------------------------------------------------------------

请问有什么可以帮忙的吗?提前致谢。

最佳答案

试试这个:

SELECT a.aid AS `id`, a.aname AS `name`, NULL AS imgurl, COUNT(i.iid) countimg 
FROM album a 
LEFT OUTER JOIN image i ON a.aid = i.albumid  
GROUP BY a.aid 
UNION 
SELECT a.iid AS `id`, i.title AS `name`, imgurl AS imgurl, 0 countimg 
FROM image i 
WHERE i.albumid = 0;

关于mysql - 连接两个表文件夹和图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27246143/

相关文章:

mysql - Google App Engine 连接外部 MySQL Node.js

python - 在 Django 中向 QuerySet 添加文字值

mysql - 在第一个表中插入数据后,如何将数据从一个表插入到另一个表中?

php - 使用多次迭代优化 MySql 查询

mysql - 如何在 SQL 中不使用 Unique/Primary key 关键字的情况下将数据唯一地插入到表中?还有其他办法吗?

sql - 在子查询中分组?

mysql - 如何在 mysql 非常大的表中更快地分组?

php - MYSQL 类数组 SELECT 语句

select - 尊重空白填充以固定宽度显示列 <select>

php - 列表更新 - 行冲突