我有一张表格,可以将单词相互联系起来。SQL获取与所有键相关的所有结果
table_word_relationships
+-------------+-------------+
| WORD_A | WORD_B |
+-------------+-------------+
| cat | dog |
+-------------+-------------+
| cat | rabbit |
+-------------+-------------+
| owl | cat |
+-------------+-------------+
| bird | dog |
+-------------+-------------+
| dog | banana |
+-------------+-------------+
| banana | cat |
+-------------+-------------+
我需要运行两种类型的查询。一个很容易。给我所有涉及到的单词“狗”
"SELECT * FROM table_word_relationships WHERE WORD_A = 'dog' OR WORD_B = 'dog'";
的话,结果将是:
cat
bird
banana
第二个是我遇到问题的一个... 我需要查询所有与单词列表中所有单词有关的单词...
因此,在英语中,我会说“给我所有与单词”dog“有关系的单词,还有与单词“CAT”有关系 结果wo可能是:
banana
因为香蕉是唯一与两个关键词有关的词。什么是适当的SQL语句类型呢?
见有很多这种类似的问题(超过10个)的方式来做到这此:如何筛选SQL结果在一个有很多通过关系](http://stackoverflow.com/questions/7364969/how-to-filter-sql-results-in-a-has-many-through-relation) –
你的第一个结果查询将是两列。而对于第二个,我认为你需要重新设计你的数据模型。你需要一张表格来表达文字和关系。然后你可以轻松地查询它们。除非这是一项家庭作业,否则我会强烈建议更改数据模型。 – Adam
@adam,我确实有单独的表格,这只是一个我认为会更容易理解的例子。 –