php - 帮助进行数据库查询

标签 php mysql database

所以我设置了一个类别表。在此表中,有一个名为“id”、“name”、“fk_parent_cat_id”(等等)的字段。 “fk_parent_cat_id”基本上只是将一个特定类别与父类别联系起来。

好的。话虽如此,我将如何进行查询以获取有关类别的信息,但同时也获取有关父类别的信息。我主要担心的是,现在我只获取父 id,这很好,但我不想运行另一个查询来识别父类别的名称。

一个正常的查询结果应该是这样的:

id: 2
name: category 1
fk_parent_cat_id: 1

而且,我希望结果是

id: 2
name: category 1
fk_parent_cat_id: 1
fk_parent_cat_name: top category

这个问题有意义吗?我想有一种方法可以通过某种连接来做到这一点......

感谢您的任何输入!

最佳答案

您可以使用 INNER JOIN 来完成此操作。只需确保表名和外键列是它们在数据库中的实际名称(因为您没有提供有关 ParentCategory 表中列名的信息)。请记住,如果您只有一个类别表(即所有类别都存储在一个表中),那么针对同一个表进行自连接没有任何问题 - 您只需要在查询中为表名添加别名即可确保它们没有歧义。

SELECT
     C.id
,   C.name
,   C.category
,   P.parent_cat_name   
FROM
    ChildCategory C
INNER JOIN
    ParentCategory P
ON
    C.fk_parent_cat_id = P.parent_cat_id

关于php - 帮助进行数据库查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1827951/

相关文章:

php - 从sql表中查询数据,其中引用在另一个表中

php - 如何让新用户密码更安全?

如果使用存储过程,是否需要 PHP PDO PARAMS?

php - 使用 Uploadify 发送附加字段数据

php - Woocommerce API PHP 响应 header

php - Mysql从两个相似的表中查找不匹配的记录

php - SQL特定计数查询

mysql - 如何将此正则表达式转换为 mysql posix

c# - 为什么 DBSet.Find 越来越慢?

sql - 将文件中的 BLOB 插入到 sql 脚本中以嵌入 H2 数据库