MySQL 根据一个表中的值从另一个表中筛选出行

MySQL Getting filtered row from one table based on a value in another table

提问人:Allen King 提问时间:9/23/2023 更新时间:9/23/2023 访问量:10

问:

我在连接这两个表时遇到问题。下面的查询将返回 1 和 8。但是,我还想检查是否在 .如何联接仅返回 8 的两个表。ID-AID-AStatusCodeTableAID-A

TableA

ID-A,  StatusCode
1      1
5      9
8      2

TableB

ID-B  ID-A  ACode
1     1     1
2     1     0
3     5     1
4     5     1
6     5     0
7     5     1
8     8     1
9     8     1



SELECT ID-A FROM TableB WHERE Acode=1 GROUP BY ID-A HAVING COUNT(*) < 3
MySQL的 加入 分组依据 拥有

评论


答:

0赞 Barmar 9/23/2023 #1

使用 加入您的子查询。TableA

SELECT t1.`ID-A`
FROM (
    SELECT `ID-A` 
    FROM TableB 
    WHERE Acode=1 
    GROUP BY `ID-A` 
    HAVING COUNT(*) < 3
) AS t1
JOIN TableA as t2 ON t1.`ID-A` = t2.`ID-A`
WHERE t2.StatusCode = 2