需要满足两个表中两个条件的查询

Need a query that will satisfy two conditions from two tables

tablea和tableb,tablea有两个字段,字段1和2,tableb有两个字段,字段3和4。

where
     tablea.field1 >= 4 and tableb.field3 = 'male'

是否可能像上面的查询一样,我在我的数据库中尝试过类似的东西,虽然没有错误并且我得到了结果,它会分别检查两者是否正确。

我会尽量说得清楚一点,但不能像我想的那样直截了当地提出问题(大学原因)。不好解释,table 1 有几列信息,其中一列是孩子的数量,table 两列有更多关于所述孩子的信息,比如性别。

所以我在创建查询时遇到问题,首先它会检查 parent 有 2 个孩子但有两个男孩,从而在 parent table 和孩子 table。

CREATE TABLE parent
(pID NUMBER,
numberkids INTEGER)

CREATE TABLE kids
(kID NUMBER,
father NUMBER,
mother NUMBER,
gender VARCHAR(7))

select
    p.pid
from
    kids k
    inner join parent pm on pm.pid = k.mother
    inner join parent pf on pf.pid = k.father,
    parent p
where
    p.numberkids >= 2 and k.gender = 'male'
/

此查询检查 parent 是否有 2 个或更多孩子并且孩子的性别是男性,但我需要它来检查 parent 是否有 2 个孩子并且其中有 2 个孩子或更多男孩(或简而言之,检查 parent 是否有 2 个或更多男孩)。

抱歉冗长的解释我修改了 tables 和我实际要使用的查询(因此可能存在一些错误,但原始查询有效,只是不是我想要的上面有解释)。任何帮助将不胜感激。

最好的办法是将 numberKids 列从 parent table 中删除...您会发现它很难维护。

无论如何,像这样的事情可能会成功:

SELECT p.pID
  FROM parent p INNER JOIN kids k
    ON p.pID IN (k.father, k.mother)
 WHERE k.gender = 'male'
 GROUP BY p.pID
HAVING COUNT(*) >= 2;