我想创建一个可以输出多列可能性的查询。输入如下。
Keyword 1|Keyword 2|Keyword 3
---------+---------+----------
shoes |buy
gloves |online
shirts |
第二个假设输入将是以下
Keyword 1|Keyword 2|Keyword 3
---------+---------+----------
shoes |buy |shop
gloves |online
shirts |
第一个结果如下 买鞋, 手套买, 衬衫买, 在线鞋, 在线手套, 衬衫在线,
第二个结果如下; 买鞋, 手套买, 衬衫买, 在线鞋, 在线手套, 在线衬衫, 鞋买店, 手套买店, 衬衫买店, 鞋网店, 手套网店, 衬衫在线商店
有没有办法编写一个可以在两种情况下都有效的查询?列数可能会更改为最多5个。
由于
答案 0 :(得分:0)
在同一张桌子之间进行笛卡尔联接:
select t1.col, t2.col, t3.col
from tab t1, tab t2, tab t3
如果你想消除重复,你可以尝试这个技巧:
select t1.col, t2.col, t3.col
from tab t1
join tab t2 on t1.col != t2.col
join tab t3 on t2.col != t3.col and t3.col != t1.col
您可以在此处阅读有关不同选项的信息:http://www.postgresqltutorial.com/postgresql-cross-join/