就像标题所说,我想加入2个没有钥匙的表来比较。
mysql join tables without keys
这个例子描述了最初的情况,但他正在寻找笛卡尔积。 我想要这样的东西
Table 1: t1
red
blue
big
small
Table 2: t2
cat
dog
person
结果应如下所示:
red cat
blue dog
big person
small NULL <--- can be empty (not shown)
这样的事情只能用sql吗?
答案 0 :(得分:4)
由于MySQL没有ROW_ID()
函数,你必须用你增加的用户变量伪造它:
select adjective, noun
from (select @counter1 := @counter1+1 as counter, adjective
from table1, (select @counter1 := 0) init) t1
left join (select @counter2 := @counter2+1 as counter, noun
from table2, (select @counter2 := 0) init) t2
using (counter)
请注意,这假设table1中的形容词总是比table2中的名词更多。如果您需要允许任何一个表更小,则需要使用full outer join
。正如Andriy M所提到的,MySQL没有内置的支持,但是如果你搜索SO或谷歌,你应该找到编码它的方法。