将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');