sql在一张表上获取描述2列

sql在一张表上获取描述2列

我有2张桌子:

汽车

ID    Desc
1     BMW
2     Audi


用户

ID   Name    ID_car1     ID_car2
1    Jack       1           2


资料检视

ID    Name   ID_car1   Desc_car1    ID_car2    Desc_car2
1     Jack      1          BMW        2           Audi


如何查询以在数据视图上显示desc_car1desc_car2

最佳答案

理想情况下,应该有第三个联结表来保持用户和汽车之间的关系。如果您希望文字查询在没有这样的表的情况下生成上述输出,那么我们将不得不在caruser之间使用交叉联接,因为不存在其他关系:

SELECT
    u.ID,
    u.Name,
    MAX(CASE WHEN c.ID = 1 THEN c.ID END) AS ID_car1,
    MAX(CASE WHEN c.ID = 1 THEN c.`Desc` END) AS Desc_car1,
    MAX(CASE WHEN c.ID = 2 THEN c.ID END) AS ID_car2,
    MAX(CASE WHEN c.ID = 2 THEN c.`Desc` END) AS Desc_car2
FROM car c
CROSS JOIN user u
GROUP BY
    u.ID,
    u.Name;


mysql - sql在一张表上获取描述2列-LMLPHP

Demo

关于mysql - sql在一张表上获取描述2列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52866259/

10-11 02:48