繁体   English   中英

mysql select from table B where条件不满足直接在表B上,而是通过表A上的join

[英]mysql select from table B where condition is not met on table B directly, but through join on table A

给定两个表 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 中同时选择山羊和奶牛?

我知道我对这个问题的措辞很糟糕,因为我不知道该问什么。 即使你不能回答这个问题,但把它整理一下,这样我可能会得到答案,那就太好了。

你可以使用:

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   ║
╚══════╩═══════╝

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM