我有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_car1
和desc_car2
? 最佳答案
理想情况下,应该有第三个联结表来保持用户和汽车之间的关系。如果您希望文字查询在没有这样的表的情况下生成上述输出,那么我们将不得不在car
和user
之间使用交叉联接,因为不存在其他关系:
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;
Demo
关于mysql - sql在一张表上获取描述2列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52866259/