如何连接两个表而不产生无用的行

时间:2017-03-03 21:48:28

标签: mysql database database-design

我有一个名为suggestion的表,其中包含title,price,...和user_id等列,并且每个建议都有一个或多个pics存储在suggestion_images表中,如果我想获得一个建议它使用此查询的图片

SELECT  sg.title , sg.price,sg.detail , sg.created_at ,
        user.name , user.phone , sg_image.url
    from sg
    join user on user.id = 16
    JOIN sg_image on sg_image.sg_id=sg.id
    where sg.id = 13 ; 

我加入建议表和user_table和suggestion_images表我的问题是,如果建议有3个图像它会产生3行,s只有相同的数据只是不同的图像..所以有什么方法可以得到一个单一的建议而且#&# 39;单张图片?或者我应该单独查询?或者我的数据库设置错了?

编辑

这是我的建议表

id | user_id |标题|价格|细节|完成|活跃的| track_code | created_at

这是我的suggestion_images表

id |网址| sg_id

我希望得到一个关于它连续出现的图像的建议

id |标题|价格|细节| created_at | url_1 | url_2 | ....

1 个答案:

答案 0 :(得分:1)

SELECT  sg.title , sg.price,sg.detail , sg.created_at ,
        user.name , user.phone ,
        ( SELECT GROUP_CONCAT(url)
             FROM sg_image on sg_id=sg.id )
    from sg
    join user on user.id = 16
    where sg.id = 13 ; 

(您的JOINuser相当奇怪。)