mysql在许多列值中基于行选择
我有一张这样的桌子mysql在许多列值中基于行选择,mysql,sql,Mysql,Sql,我有一张这样的桌子 id alias_word language original 1 word1 es changed_word 2 word1 en orig_word 3 word1 fr changed_word 4 word2 de other_original 假设引用列语言=es 如何进行查询,以得到别名为word column=word1且原始列与语言列为es的原始列不同的
id alias_word language original
1 word1 es changed_word
2 word1 en orig_word
3 word1 fr changed_word
4 word2 de other_original
假设引用列语言=es
如何进行查询,以得到别名为word column=word1且原始列与语言列为es的原始列不同的所有行
预期结果:
2个单词1个原始单词
我已经试过了,结果是空的
SELECT * FROM words WHERE alias_word = 'word1' AND original <> original
而原创永远不会有任何回报。我不太明白你对原始专栏所做的,但我认为你不想在原始专栏中使用“原始”一词:
SELECT *
FROM words
WHERE alias_word = 'word1'
AND original <> 'original'
AND language = 'es'
尝试使用自联接:
SELECT w2.*
FROM words w1
INNER JOIN words w2
ON w1.alias_word = w2.alias_word AND
w1.original <> w2.original
WHERE
w1.language = 'es';
这适用于OP中的特定示例,但通过硬编码值来实现。。。还有原创的“原创”。。。我不知道原创的价值。。。这必须是原始的“我需要这个值”由“一个查询”确定,其中“语言”确定。谢谢你的。。。它起作用了。我添加了其中w1.language='es'和w1.alias='my_wanted_alias';适应我的需要