【问题标题】:How to join two mysql tables twice如何两次加入两个mysql表
【发布时间】:2016-01-14 06:03:34
【问题描述】:

我在 mysql 中有两个表(wordpress 帖子数据库的结构相同):

表 1:“发布”
编号 |名称
1 |苹果手机
2 |平板电脑
3 | images01.jpg(iPhone 缩略图)
4 |笔记本电脑
5 | images02.jpg(iPad 缩略图)

表 2:“图像”
post_id | image_id
1 | 3
2 | 5

我运行sql:

SELECT post.*, image.image_id FROM post 
LEFT JOIN image ON post.id = image.post_id

结果:

标识 |姓名 | image_id
1 |苹果手机 | 3
2 | iPad | 5

如何在一次 sql 调用中获得缩略图名称 (imagesxx.jpg)?

【问题讨论】:

  • 缩略图名称对应的字段是什么?您无法在当前查询中获得所需的输出吗?
  • 查看post 表的示例数据,我认为您需要一个单独的缩略图字段
  • 缩略图名称在 Table1 中,但在另一行中
  • 能写出sql吗?谢谢
  • 我无法更改 Table1 结构。这是我的 wordpress 帖子的数据库。我把它改写成简单的样子。

标签: mysql join


【解决方案1】:

这是您的查询:

select p.id,p.name,p1.name from image i inner join post p on i.post_id=p.id  
inner join post p1 on i.image_id=p1.id

【讨论】:

    【解决方案2】:

    使用别名并连接回 post 表。

    SELECT p.*, i1.image_id image_id, p2.name image_name
    FROM post p
    LEFT JOIN image as i1 
       ON p.id = i1.post_id
    LEFT JOIN post as p2
       ON i1.image_id = p2.id
    


    SQL Fiddle

    【讨论】:

    • 来帮助@jude Nguyen!如果您将我的答案标记为您接受的答案,将不胜感激。
    • 已标记。我也想为你点击“向上箭头”,但我不能,因为我没有足够的代表
    猜你喜欢
    • 2011-12-01
    • 2019-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-23
    • 2013-11-26
    • 2010-09-17
    相关资源
    最近更新 更多