繁体   English   中英

从MySQL数据库获取父母的名字

[英]Getting names of parents from mysql database

我在一个表中有一个带有父母姓名的数据库。 列:id,名称。 并在其他表ID,parent_id,名称中。 在搜索字段中,我输入名称。 别说鲍勃,爱丽丝和汤姆。 而且我必须在数据库中搜索父母是否有孩子,他们的孩子分别叫鲍勃,爱丽丝和汤姆。 他们可以有更多的孩子,但必须有这三个孩子。

可以说埃德蒙有孩子:鲍勃,汤姆,巴特,爱丽丝和丽莎,理查德有鲍勃,爱丽丝和内德。

给定这些名称,数据库应仅返回Edmund。

我应该如何针对此问题编写SQL查询,还是应该使用PHP?

您可以与孩子一起与父母同住。 在WHERE子句中,过滤给定的子代名称

WHERE c.name IN ('Bob', 'Alice', 'Tom')

然后,按父ID将其分组。

未经测试:

SELECT p.id, MAX(p.name), count(*)
FROM child AS c
JOIN parent AS p ON c.parent_id = p.id
WHERE c.name IN ('Bob', 'Alice', 'Tom')
GROUP BY p.id

现在,您可以使用其计数值等于请求的子名称数的父母。

您需要正确定义表结构。 你可以试试看...

TableChildren
------------------
------------------
  Name      ParentID
  Bob         1
  Alice       1   
  Tom         1
  Jerry       2
  Jerry       1

ParentID是子表中的外键。 ParentID将是父母的主键表,如下所示:

TableParents
--------------
--------------
ID      Name  
1      Edmund   
2      Emma

这意味着鲍勃,爱丽丝和汤姆是埃德蒙的孩子。 杰瑞有埃德蒙(Edmund)和艾玛(Emma)都是父母。

暂无
暂无

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

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