我的MySQL表格如下:
word1 word2 count
a c 1
a d 2
a e 3
a f 4
b c 5
b d 6
b g 7
b h 8
"a"和"b"是用户输入 - 从表中选择*,其中word1='a'或word1='b' - 获得约10000行
我需要一个查询来获得:
当输入为"a"时,word1是列
当输入为"b"时,word1_是列
word2和word2_是同一列,因此可以忽略其中之一
我需要将下面的表与上面的表组合起来。例如这个查询:
select
t1.word1, t1.word2, t1.count,
t2.word1 as word1_, t2.word2 as word2_, t2.count as count_
from table t1
join table t2 on t1.word2 = t2.word2
where t1.word1 = 'a' and t2.word1 = 'b'
产生
word1 word2 count word1_ word2_ count_
a c 1 b c 5
a d 2 b d 6
我需要在未找到word2的情况下获取count=0。
word1 word2 count word1_ word2_ count_
a c 1 b c 5
a d 2 b d 6
a e 3 b e 0
a f 4 b f 0
a g 0 b g 7
a h 0 b h 8
附言:表格有1100万行,索引设置在word1
上。
再附言:提供的答案有效,但是查询需要20秒才能完成。我需要自己以编程的方式完成这个任务,以获得更好的性能。