mysql从表B中选择直接在表B上满足条件,但通过表A上的连接

时间:2016-04-30 14:59:07

标签: mysql join

给出两个表A和B,看起来像:

+--------+      +--------------+
|Table A |      |Table B       |
+--------+      +------+-------+
|     id |      | A_id | Value | 
+--------+      +------+-------|
|      1 |      |    1 |   Cat |
|      2 |      |    1 |   Dog |
|      3 |      |    1 |   Pig |
|      4 |      |    3 |  Goat |
+--------+      |    3 |   Cow |
                |    4 |   Bee |
                +------+-------+

如果我的选择标准是四个字母的单词,或者与四个字母的单词共享一个A_id的单词,如何选择表B中的Goat an Cow?

我知道我已经把这个问题严厉地说出来了,因为我不知道该问什么。即使你不能回答这个问题,但整理一下,所以我可能会得到一个答案,那就太好了。

1 个答案:

答案 0 :(得分:1)

您可以使用:

SELECT *
FROM Table_b
WHERE A_id IN (SELECT A_Id
               FROM Table_b
               WHERE LENGTH(Value) = 4);

LiveDemo

输出:

╔══════╦═══════╗
║ A_id ║ Value ║
╠══════╬═══════╣
║    3 ║ Goat  ║
║    3 ║ Cow   ║
╚══════╩═══════╝