我有一张桌子,我试图找到属于同一类别的所有单词。该表如下所示:
ID | CATEGORY | word --------------------- 1 | 2 | elephant 2 | 2 | lion 3 | 5 | duck 4 | 5 | pig 5 | 5 | chicken 6 | 7 | shark 7 | 7 | whale 8 | 7 | dolphin 9 | 7 | bass
因此,如果有人搜索“狮子”,我应该获得该类别中的所有动物。 如何在不运行2个查询的情况下执行此操作,一个用于从动物列“单词”中选择,然后对之前找到的类别中的所有动物运行另一个选择查询?
答案 0 :(得分:4)
还有其他一些方法可以做到,但我会这样做:
SELECT t1.word
FROM
table t1
INNER Join
table t2 on t2.group = t1.group
WHERE t2.word = 'lion'
Nota:尽量避免名称如'group','select'等...
答案 1 :(得分:2)
是的,您可以使用如下所示的子查询:
SELECT *
FROM yourTable
WHERE `group` IN (SELECT `group` FROM yourTable
WHERE `word`='lion');
答案 2 :(得分:1)
SELECT table_name.word FROM table_name
WHERE table_name.GROUP in (select group from table_name where word ='loin');