Mysql SQL-ID行,获取连接的数据

Mysql SQL-ID行,获取连接的数据,mysql,sql,Mysql,Sql,我有一个表车库结构如下: garageid | car1 | car2 | car3 carN字段包含来自另一个表的IDcars: carN | make | color 有没有办法在一次查询中获得特定车库的颜色列表 结果将是: garageid | color1 | color2 | color3 我意识到这种结构没有正常化,但汽车的数量永远不会改变。有没有办法做到这一点?用ID存储多个列通常不是一个好方法。每辆车最好有一排。也就是说,您可以使用多个联接执行您想要的操作: select

我有一个表
车库
结构如下:

garageid | car1 | car2 | car3
carN字段包含来自另一个表的ID
cars

carN | make | color
有没有办法在一次查询中获得特定车库的颜色列表

结果将是:

garageid | color1 | color2 | color3

我意识到这种结构没有正常化,但汽车的数量永远不会改变。有没有办法做到这一点?

用ID存储多个列通常不是一个好方法。每辆车最好有一排。也就是说,您可以使用多个联接执行您想要的操作:

select g.garageid, c1.color as color1, c2.color as color2, c3.color as color3
from garages g left join
     cars c1
     on g.car1 = c1.carid left join
     cars c2
     on g.car2 = c2.carid left join
     cars c3
     on g.car3 = c3.carid;

即使一个或多个汽车ID为
NULL
左连接
仍将返回
车库
,使用ID存储多列通常不是一个好方法。每辆车最好有一排。也就是说,您可以使用多个联接执行您想要的操作:

select g.garageid, c1.color as color1, c2.color as color2, c3.color as color3
from garages g left join
     cars c1
     on g.car1 = c1.carid left join
     cars c2
     on g.car2 = c2.carid left join
     cars c3
     on g.car3 = c3.carid;

即使一个或多个汽车ID为
NULL
左连接
仍将返回
车库
,使用ID存储多列通常不是一个好方法。每辆车最好有一排。也就是说,您可以使用多个联接执行您想要的操作:

select g.garageid, c1.color as color1, c2.color as color2, c3.color as color3
from garages g left join
     cars c1
     on g.car1 = c1.carid left join
     cars c2
     on g.car2 = c2.carid left join
     cars c3
     on g.car3 = c3.carid;

即使一个或多个汽车ID为
NULL
左连接
仍将返回
车库
,使用ID存储多列通常不是一个好方法。每辆车最好有一排。也就是说,您可以使用多个联接执行您想要的操作:

select g.garageid, c1.color as color1, c2.color as color2, c3.color as color3
from garages g left join
     cars c1
     on g.car1 = c1.carid left join
     cars c2
     on g.car2 = c2.carid left join
     cars c3
     on g.car3 = c3.carid;

左连接
仍将返回
车库
,即使一个或多个车辆ID为

,我认为最好是有一个表t\u garage\u cars:

钩状龋

以这种方式检索数据很简单


如果由于某种原因无法实现此功能,我相信您只能将光标与临时表一起使用

在我看来,最好使用表t\u garage\u cars:

钩状龋

以这种方式检索数据很简单


如果由于某种原因无法实现此功能,我相信您只能将光标与临时表一起使用

在我看来,最好使用表t\u garage\u cars:

钩状龋

以这种方式检索数据很简单


如果由于某种原因无法实现此功能,我相信您只能将光标与临时表一起使用

在我看来,最好使用表t\u garage\u cars:

钩状龋

以这种方式检索数据很简单



如果由于某些原因无法实现,我相信您只能使用光标,可能是临时表

您是否希望拥有动态列?我是否可以建议将数据库“规范化”为“车库id”,单独输入:car id | make | color和车库id的“外键”更为实用?您是否希望拥有动态列列?我是否可以建议将数据库“规范化”为“车库id”,单独输入:car id | make | color和车库id的“外键”?您是否希望拥有动态列?我是否可以建议将数据库“规范化”为“车库id”,单独输入:car id | make | color和“外键”车库id的“外键”更实用?您是否希望有动态列?我是否可以建议将数据库“规范化”为“车库id”,单独输入:car id | make | color和车库id的“外键”更实用?如果有100个car.id列,您的答案是否相同?只是好奇-没有判断。限制是多少?我明白了。有点不切实际,因为我实际上有11辆车。我会规范化数据库,但谢谢你的工作答案@瑞安·文森特。嗯,是的。但我不会这样构造数据。读前两句话。@GordonLinoff,谢谢你的回答。如果有100个car.id columns,你的答案会是一样的吗?只是好奇-没有判断。限制是多少?我明白了。有点不切实际,因为我实际上有11辆车。我会规范化数据库,但谢谢你的工作答案@瑞安·文森特。嗯,是的。但我不会这样构造数据。读前两句话。@GordonLinoff,谢谢你的回答。如果有100个car.id columns,你的答案会是一样的吗?只是好奇-没有判断。限制是多少?我明白了。有点不切实际,因为我实际上有11辆车。我会规范化数据库,但谢谢你的工作答案@瑞安·文森特。嗯,是的。但我不会这样构造数据。读前两句话。@GordonLinoff,谢谢你的回答。如果有100个car.id columns,你的答案会是一样的吗?只是好奇-没有判断。限制是多少?我明白了。有点不切实际,因为我实际上有11辆车。我会规范化数据库,但谢谢你的工作答案@瑞安·文森特。嗯,是的。但我不会这样构造数据。读前两句话。@GordonLinoff,谢谢你的回答。