将MySQL查询-2个查询简化为1个

将MySQL查询-2个查询简化为1个,mysql,Mysql,我有一张这样的桌子: +----+--------+-------+ | id | entity | word | +----+--------+-------+ | 1 | 1 | red | | 2 | 1 | green | | 3 | 1 | blue | | 4 | 2 | car | | 5 | 2 | truck | | 6 | 2 | train | | 7 | 3 | water |

我有一张这样的桌子:

+----+--------+-------+
| id | entity | word  |
+----+--------+-------+
|  1 |      1 | red   |
|  2 |      1 | green |
|  3 |      1 | blue  |
|  4 |      2 | car   |
|  5 |      2 | truck |
|  6 |      2 | train |
|  7 |      3 | water |
|  8 |      3 | milk  |
|  9 |      3 | soda  |
+----+--------+-------+

如果我搜索
蓝色
,我希望得到
红色
绿色
蓝色
作为答案。现在我使用2个查询。一个用于查找“实体”编号,另一个用于查找具有相同“实体”编号的所有单词。

试试这个。联接比子查询快得多

select distinct t2.word from Table t1 
INNER JOIN Table t2 on t2.entity=t1.entity
where t1.word="blue";

你好!所以在答案中“只写代码”是不好的做法。你能多加一点背景吗?通常,对你所做的一点解释就足够了。谢谢
SELECT *
FROM TABLE_NAME
WHERE entity IN
    (SELECT entity
     FROM TABLE_NAME
     WHERE word='blue');