我正在寻找一些查询帮助,我有两个表:
表1:
id, version, icon1id, icon2id, icon3id, icon4id, icon5id
1 1 1 2 3 2 3
2 1 2 3 4 3 2
3 1 3 4 3 4 2
4 1 4 5 2 2 1
表2:
id, version, iconid, iconname
1 1 1 red
2 1 2 blue
3 1 3 green
4 1 4 purple
5 1 5 yellow
6 2 1 red
7 2 2 purple
8 2 3 blue
9 2 4 yellow
10 2 5 green
我想在表1上运行查询,显示如下内容:
id, version, icon1name, icon2name, icon3name, icon4name, icon5name
1 1 red blue green blue green
基本上,我希望编写一个使用表1中的'version'和'iconid'的查询,并从表2返回每个匹配的'iconname'。我花了一些时间搜索任何会有所帮助,但我正在努力充分投入工作,正在努力搜索......
非常感谢任何帮助!
由于
答案 0 :(得分:1)
两种不处理行 - >列的任意数量的方法:
加入
从图标中选择table1.id,table1.version,icon1.iconname,icon2.iconname 在table1.version = icon1.version和table1.iconid1 = icon1.iconid上将table1连接为icon1 在table1.version = icon2.version和table1.iconid2 = icon2.iconid ...;
选择选择(丑陋)
选择id,版本,(从table2中选择iconname,其中version = version和iconid = iconid1),(从table2中选择iconname,其中version = version和iconid = iconid2),...来自table1;
答案 1 :(得分:0)
我同意Marc B。我也相信,这就是方式,如何解决。或者,您可以尝试以下查询。您必须为其他列添加其他连接。
select table1.id, table1.version, icon1.iconname, icon2.iconname, icon3.iconname from table1
left join
table2 icon1
on table1.version = icon1.version
and table1.icon1id = icon1.iconid
left join
table2 icon2
on table1.version = icon2.version
and table1.icon2id = icon2.iconid
left join
table2 icon3
on table1.version = icon3.version
and table1.icon3id = icon3.iconid
order by table1.id