SQL子查询和表连接问题

时间:2016-09-11 05:12:49

标签: mysql sql

嗨,我需要一个关于这个问题的帮助。我尝试过子查询但是没有得到我想要的结果。

论文是我的表:

**tblefruitdesc**
 ID       Desc
 1        Round
 2        Smooth
 3        Rough


**tblefruit**
 ID       Name
 1        apple
 2        orange


**tblmultidesc**
ID      fruit_id     fruit_desc
1         1              1
2         2              2
3         2              3

我想要输出:

**tblmultidesc**
     Name         Desc
     Apple        Round
     Orange       Smooth,Rough

2 个答案:

答案 0 :(得分:1)

通过tblmultidesc将这三个表连接在一起,然后使用GROUP_CONCAT获取每个水果的逗号分隔说明列表。

SELECT t3.Name,
       GROUP_CONCAT(t2.Desc) AS Desc
FROM tblmultidesc t1
INNER JOIN tblefruitdesc t2
    ON t1.fruit_desc = t2.ID
INNER JOIN tblefruit t3
    ON t1.fruit_id = t3.ID
GROUP BY t3.Name

答案 1 :(得分:0)

SELECT b.name, c.Desc
FROM tblemultidesc a
LEFT JOIN tblefruit b
ON a.fruit_id = b.ID
LEFT JOIN tblefruitdesc c
ON a.fruit_desc = c.ID

你真的想创建另一个表还是只显示结果?

如果你想创建另一个可以反复使用的表,只需将一个CREATE VIEW你的viewname作为select语句;然后,您可以根据需要多次使用SELECT * FROM yourviewname,而无需写出SELECT语句。