如何将 3 列交叉连接在一起?
How to cross join 3 columns together?
我有 2 个 table,第一个是 material_table:
id
material
1
steel
2
aluminum
3
copper
4
nickel
第二个是dimension_table:
width
length
1
1
1
2
1
3
1
4
我想加入他们,所以我有类似 result_table:
material
width
length
steel
1
1
steel
1
2
steel
1
3
我尝试了以下方法:
SELECT material_table.type, dimension_table.width, dimension_table.length
FROM dimensions_table
CROSS JOIN material_table;
但我得到的结果是 table,例如:
material
width
length
steel
1
1
copper
1
1
nickel
1
1
steel
1
2
copper
1
2
nickel
1
2
所以澄清一下,我想加入我的 material table 和尺寸 table,但列的顺序不是我想要的。
SELECT material_table.type, dimension_table.width, dimension_table.length
FROM dimensions_table
CROSS JOIN material_table
ORDER BY material_table.type
您需要对每个应该被排序的字段进行排序。要保证与预期的输出相同,它将是:
SELECT material_table.type, dimension_table.width, dimension_table.length
FROM dimensions_table
CROSS JOIN material_table
ORDER BY material_table.type, dimension_table.width, dimension_table.length;
我有 2 个 table,第一个是 material_table:
id | material |
---|---|
1 | steel |
2 | aluminum |
3 | copper |
4 | nickel |
第二个是dimension_table:
width | length |
---|---|
1 | 1 |
1 | 2 |
1 | 3 |
1 | 4 |
我想加入他们,所以我有类似 result_table:
material | width | length |
---|---|---|
steel | 1 | 1 |
steel | 1 | 2 |
steel | 1 | 3 |
我尝试了以下方法:
SELECT material_table.type, dimension_table.width, dimension_table.length
FROM dimensions_table
CROSS JOIN material_table;
但我得到的结果是 table,例如:
material | width | length |
---|---|---|
steel | 1 | 1 |
copper | 1 | 1 |
nickel | 1 | 1 |
steel | 1 | 2 |
copper | 1 | 2 |
nickel | 1 | 2 |
所以澄清一下,我想加入我的 material table 和尺寸 table,但列的顺序不是我想要的。
SELECT material_table.type, dimension_table.width, dimension_table.length
FROM dimensions_table
CROSS JOIN material_table
ORDER BY material_table.type
您需要对每个应该被排序的字段进行排序。要保证与预期的输出相同,它将是:
SELECT material_table.type, dimension_table.width, dimension_table.length
FROM dimensions_table
CROSS JOIN material_table
ORDER BY material_table.type, dimension_table.width, dimension_table.length;