两张桌子上的笛卡尔积
cartesian product on two tables
我正在尝试创建 table 名称和列名称的结果集。在 table A 中,我有 table 名称列表,在 Table B 中,我有列名列表。每个 table 都应该有完整的列列表。所以:
- Table一个
table_name
Table1
Table2
- TableB
column_name
Column1
Column2
Column3
我想要的结果是:
table_name
column_name
Table1
Column1
Table1
Column2
Table1
Column3
Table2
Column1
Table2
Column2
Table2
Column3
所以我有
select
select
table_name
column_name
from
A
full outer join
B
on
A.TABLE_NAME = B.COLUMN_NAME
这给了我:
table_name
column_name
Table1
Table2
Column1
Column2
Column3
很接近,但没有雪茄!
请问我怎样才能得到我的答案?
使用这个:
select A.table_name, B.column_name from A, B;
如果你的表不是太大,试试这个:
select
A.table_name
, B.column_name
from A
cross join B
我正在尝试创建 table 名称和列名称的结果集。在 table A 中,我有 table 名称列表,在 Table B 中,我有列名列表。每个 table 都应该有完整的列列表。所以:
- Table一个
table_name |
---|
Table1 |
Table2 |
- TableB
column_name |
---|
Column1 |
Column2 |
Column3 |
我想要的结果是:
table_name | column_name |
---|---|
Table1 | Column1 |
Table1 | Column2 |
Table1 | Column3 |
Table2 | Column1 |
Table2 | Column2 |
Table2 | Column3 |
所以我有 select
select
table_name
column_name
from
A
full outer join
B
on
A.TABLE_NAME = B.COLUMN_NAME
这给了我:
table_name | column_name |
---|---|
Table1 | |
Table2 | |
Column1 | |
Column2 | |
Column3 |
很接近,但没有雪茄! 请问我怎样才能得到我的答案?
使用这个:
select A.table_name, B.column_name from A, B;
如果你的表不是太大,试试这个:
select
A.table_name
, B.column_name
from A
cross join B