php - 从mysql数据库获取 parent 姓名

标签 php mysql sql

我有一个数据库,其中一个表中有父名称。列:id、名称。 以及其他表中的id、parent_id、name。 在搜索字段中我输入名称。更不用说鲍勃、爱丽丝和汤姆了。 我必须在数据库中搜索 child 名为鲍勃、爱丽丝和汤姆的 parent 。他们可以有更多的 child ,但他们必须要这三个。

假设埃德蒙有 child :鲍勃、汤姆、巴特、爱丽丝和丽莎,理查德有鲍勃、爱丽丝和内德。

鉴于这些名称,数据库应仅返回 Edmund。

我应该如何为这个问题编写 SQL 查询,还是应该使用 PHP 来完成?

最佳答案

您可以让 child 和他们的 parent 一起加入。在 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

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

关于php - 从mysql数据库获取 parent 姓名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30433824/

相关文章:

sql - WHERE 子句中的条件是否会减少其他条件覆盖的行数?

mysql - T-SQL 存储过程 CASE 问题

mysql - 如何将多行变成一行

python - 模块未找到错误: No module named 'PyMySQL'

javascript - 应该得到 3 张图像的网格

php - 将 $_GET 或 $_POST 数据传递给使用 wget 运行的 PHP 脚本

如果两个条件都为真,则 MySQL 插入如果不存在则更新

mysql - friend 常用查询mysql

php - 试图追踪 apache 日志中的模糊错误

javascript - PHP + Javascript 如何正确放置 iframe