mysql选择列A中的所有X,其中列B = Y.

时间:2018-03-12 10:02:10

标签: mysql select group-by

我有一张桌子,我试图找到属于同一类别的所有单词。该表如下所示:

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个查询的情况下执行此操作,一个用于从动物列“单词”中选择,然后对之前找到的类别中的所有动物运行另一个选择查询?

3 个答案:

答案 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');