php - 对 MySQL join 真的很困惑

标签 php mysql join

我真的一直在尝试自己解决这个问题,但互联网上的所有教程要么不起作用,要么只写了一半……没有人解释你如何回应内容。

现在我正在拉一张热门搜索表...我想显示名称,然后在其下方显示类别名称。但问题是,搜索表将类别存储为 ID 而不是名称。

所以我需要使用连接,它将“popular_search”表中的“category_id”列链接到“categories”表中的“id”列...然后显示来自“类别”表显示类别名称。

没有人提供有关如何回显内容的信息,因为两个表都有同名的列,我该怎么做?我不明白...

这是我当前的查询:

SELECT * FROM popular_search ORDER BY `hits` DESC LIMIT 9

这是我当前的 echo ,但我需要用另一个表中的类别名称替换 id 字段:

<?php echo $item['name']; ?>
<?php echo $item['category_id']; ?>

最佳答案

使用 AS 应该适合你:

SELECT
    ps.*,
    ca.name as `category_name`
FROM
    `popular_search` as `ps`
INNER JOIN
    `categories` as `ca`
ON
    ps.category_id = ca.id
ORDER BY
    ps.hits DESC
LIMIT 9

现在它将作为 category_name 在您的数组中。

您可以在此处阅读更多信息:http://dev.mysql.com/doc/refman/5.0/en/select.html

关于php - 对 MySQL join 真的很困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13722603/

相关文章:

php - 如何防止注册重复的电子邮件地址?

php - 使用 PHP 查询 DNSBL 或其他阻止列表

python - Peewee 未设置最后插入 ID

mysql 高效连接 2 个表到相同的 2 个表

php - 如何从 mysql 数据库中完美排序

PHP - 执行 bash .sh 文件以从不同服务器删除文件

MySQL 计数已关闭

php - 如何使用php从mysql表循环多维数组

c# - Entity Framework 加入与包含

java - Hibernate 使用枚举连接列