MySQL左连接,根据左表最大ID从左表获取所有右表列和2列

娜塔拉德

我有一个图书系列表(bs),其中包含基本的系列信息。然后,我有一个书籍系列照片表(bsp),其中包含基于bs id的每个bs的缩略图。bs只能有一个缩略图,因此bsp表会在每次照片更新时插入一张图片,当需要显示时,它会从该表中获取最大id。我现在需要获取每个bs和最大id照片。我的查询返回所有正确的行,但不限于每bs 1,它返回每个bs / bsp组合。这是查询:

select bs.*, bsp.Id AS BookSeriesPhotoId, bsp.Ext AS BookSeriesPhotoExt
FROM BookSeries AS bs 
LEFT JOIN BookSeriesPhotos bsp ON bsp.BookSeriesId = bs.Id
WHERE(
  SELECT MAX(Id) FROM BookSeriesPhotos GROUP BY bsp.Id
) 

这将返回6行,第一个系列中的4个具有4张照片更新,第二个系列中2个具有2个照片更新。我希望它返回每个系列的最大照片ID,因此它应该仅返回2行。我该如何实现?

萨哈什·沙(Saharsh Shah)

尝试这个:

SELECT bs.*, bsp.Id AS BookSeriesPhotoId, bsp.Ext AS BookSeriesPhotoExt
FROM BookSeries AS bs 
LEFT JOIN (SELECT bsp.BookSeriesId, bsp.Id, bsp.Ext 
           FROM BookSeriesPhotos bsp 
           INNER JOIN (SELECT bsp.BookSeriesId, MAX(bsp.Id) ID 
                       FROM BookSeriesPhotos bsp GROUP BY bsp.BookSeriesId
                     ) AS A ON bsp.BookSeriesId = A.BookSeriesId AND bsp.Id = A.Id
         ) AS bsp ON bsp.BookSeriesId = bs.Id

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Mysql左连接,条件在右表中

来自分类Dev

MySQL-从右表中的每个组获取左表中的所有行

来自分类Dev

左外连接,从左边查找所有在右表中没有出现的,mysql

来自分类Dev

MySQL连接表,其中所有左记录都在右

来自分类Dev

SQL JOIN从左表获取数据,即使所有右列都匹配

来自分类Dev

使用左外部联接联接两个表,并根据右表列填充新的列值

来自分类Dev

MySQL左连接最大ID

来自分类Dev

mysql左连接/右连接3个表

来自分类Dev

从右表条件获取左表行

来自分类Dev

MySQL从左表返回所有记录,但右表中有匹配项的记录除外

来自分类Dev

中间SQL连接中的“左”和“右”表是什么?

来自分类Dev

中间SQL连接中的“左”和“右”表是什么?

来自分类Dev

左连接并仅从右表中选择匹配的列

来自分类Dev

左连接与右表中的位置

来自分类Dev

SQL 左连接 - 右表中的多行

来自分类Dev

如何连接表,包括左表中的所有ID,但在给定某些where子句的情况下仅显示右表中的信息

来自分类Dev

我怎么知道哪个表是左和右mysql

来自分类Dev

我怎么知道哪个表是左和右mysql

来自分类Dev

Laravel 2表联接,左表的所有表与右表的成员合并,并具有给定的FK值

来自分类Dev

mysql左连接和内部连接3个表

来自分类Dev

即使表 B 上没有记录,也使用左连接获取所有记录

来自分类Dev

LEFT JOIN-从左表中获取所有数据,而右表中没有匹配项

来自分类Dev

左外连接不返回左表上的所有行

来自分类Dev

MySQL左连接多个表和where子句

来自分类Dev

PHP / MYSQL-仅在表中显示左连接项,但在列中连接右连接值

来自分类Dev

合并排序有何区别?中=左+(右-左)/ 2和中=(左+右)/ 2

来自分类Dev

MySQL使用Join列出左表中的所有记录

来自分类Dev

MySql 使用左连接插入 2 个不同的表

来自分类Dev

mysql左连接两个表

Related 相关文章

  1. 1

    Mysql左连接,条件在右表中

  2. 2

    MySQL-从右表中的每个组获取左表中的所有行

  3. 3

    左外连接,从左边查找所有在右表中没有出现的,mysql

  4. 4

    MySQL连接表,其中所有左记录都在右

  5. 5

    SQL JOIN从左表获取数据,即使所有右列都匹配

  6. 6

    使用左外部联接联接两个表,并根据右表列填充新的列值

  7. 7

    MySQL左连接最大ID

  8. 8

    mysql左连接/右连接3个表

  9. 9

    从右表条件获取左表行

  10. 10

    MySQL从左表返回所有记录,但右表中有匹配项的记录除外

  11. 11

    中间SQL连接中的“左”和“右”表是什么?

  12. 12

    中间SQL连接中的“左”和“右”表是什么?

  13. 13

    左连接并仅从右表中选择匹配的列

  14. 14

    左连接与右表中的位置

  15. 15

    SQL 左连接 - 右表中的多行

  16. 16

    如何连接表,包括左表中的所有ID,但在给定某些where子句的情况下仅显示右表中的信息

  17. 17

    我怎么知道哪个表是左和右mysql

  18. 18

    我怎么知道哪个表是左和右mysql

  19. 19

    Laravel 2表联接,左表的所有表与右表的成员合并,并具有给定的FK值

  20. 20

    mysql左连接和内部连接3个表

  21. 21

    即使表 B 上没有记录,也使用左连接获取所有记录

  22. 22

    LEFT JOIN-从左表中获取所有数据,而右表中没有匹配项

  23. 23

    左外连接不返回左表上的所有行

  24. 24

    MySQL左连接多个表和where子句

  25. 25

    PHP / MYSQL-仅在表中显示左连接项,但在列中连接右连接值

  26. 26

    合并排序有何区别?中=左+(右-左)/ 2和中=(左+右)/ 2

  27. 27

    MySQL使用Join列出左表中的所有记录

  28. 28

    MySql 使用左连接插入 2 个不同的表

  29. 29

    mysql左连接两个表

热门标签

归档