表a和表b,表a有两个字段,字段1和2,表b有两个字段,字段3和4。

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

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

即时通讯将尝试保持一点清晰,并不能像我想的那样直接给出查询(大学原因)。 因此,请解释一下,表1具有几列信息,其中一列是孩子的数量,表二具有关于所述孩子的更多信息,例如性别。

所以我在创建查询时遇到麻烦,在该查询中首先检查父级有2个孩子,但有2个男生,因此在父表和kids表之间建立了关系。

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'
/

此查询检查父母是否有2个或更多孩子,并且孩子的性别是男性,但我需要检查父母是否有2个孩子,而那些孩子中是否有2个或更多的男性孩子(或者总之检查父母是否有2个或更多的男性孩子)。

对于冗长的解释感到抱歉,我修改了表格和实际将要使用的即时消息的查询(因此可能会出现一些错误,但是原始查询有效,只是我上面没有想要的解释)。 任何帮助将不胜感激。

#1楼 票数:0 已采纳

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

无论如何,这样的事情可能会解决问题:

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;

  ask by Sultan Ahmed translate from so

未解决问题?本站智能推荐:

1回复

在一个表的一个镇中查询两个列

我头脑中应该做的一件简单的事情,但似乎找不到答案。 我从客户端得到一个列表,例如name timestamp 我想将它们放在临时表中,然后依次查询它们,例如 然后循环遍历表中的每个条目 我可以对来自客户端文件的每个条目进行硬编码作为选择,但是认为应该有一种更好的方法,因
2回复

复杂的SQL查询连接两个表

问题:给定两个表:TableA,TableB,其中TableA与TableB具有一对多关系,我想检索TableB中的所有记录,以查找条件与TableB中的某列匹配的表,并为唯一的TableA记录返回NULL对于相同的属性。 表结构: 表A 表B 表B保存属性名称和值,
2回复

从两个表中读取一个触发器

我们可以在一个触发器中使用两个表吗? 我有历史记录表,因为我需要从两个表放置数据。 IE浏览器 因此,我要创建的触发器是,每当预订表datefrom中的内容更新时,都应更新booking_history表中的所有信息(dateto除外。...如果未输入dateto的话) 我
5回复

两个表中的行数差异

如何区分两个不同表中的行数? 结果我需要2 。 这两个表可能不一定具有相同的架构。
3回复

比较Oracle中的两个表

我在oracle 10g中有两个表(table1,table2),它们具有相同的列(A,B,C),但是数据不同,并且我想比较table1中的A和B列与table2中的And B列(如果A)和B相似,我需要用table2的C列更新table1的C列,如果它们不相似,则只需插入新行,该怎么用?
1回复

两个或多个值匹配条件的情况?

我被问到这个问题; 如果县的代表姓氏相同,则列出县名和代表的姓氏。 我有以下表格; 我似乎无法找出正确的方法来要求Orical显示一个存在两次且姓氏在同一个国家的姓氏。 我知道怎么问什么东西=东西,但那并不问我想知道什么。
1回复

日期查询在sqlplus和Oracle SQL Developer中给出两个结果

我在oracle 11g中有以下数据。 Date的数据类型是带有时区的Timestamp(6)。 现在,我想找出所有日期大于25-SEP-15的记录。 我正在使用以下查询 当我从sqlplus客户端和oracle sql developer触发查询时,得到奇怪的结果 在
2回复

比较SQL Plus Oracle中两个不同表中的值

我有多个带有一些外键的表。 这是表格; 我正在尝试显示在“ X”医院工作的医生名单。 我将如何运行此查询? 我不确定该特定查询是否正确,因为它显示每个医生(而不是在“ HospitalName”中工作的医生)。如果这是正确的,那么我猜外键是否正确? 提前致谢。 危险品