我自己一直在努力解决这个问题,但互联网上的所有教程都不起作用,或者它们写成了一半......没有人解释你是如何回应内容的。
现在我正在拉一张热门搜索表...我想显示名称,然后显示其下面的类别名称。但问题是,搜索表将类别存储为ID而不是名称。
所以我需要使用一个连接,它将“popular_search”表中的“category_id”列链接到“categories”表中的“id”列...然后显示“name”列中的“name”列“类别”表显示类别名称。
没有人提供有关如何回显内容的信息,因为两个表都有相同名称的列,我该如何实际执行此操作?我不明白......
这是我目前的查询:
SELECT * FROM popular_search ORDER BY `hits` DESC LIMIT 9
这是我当前的回声,但是我需要用另一个表中的类别名称替换id字段:
<?php echo $item['name']; ?>
<?php echo $item['category_id']; ?>
答案 0 :(得分:5)
使用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
答案 1 :(得分:2)
在SELECT中指定列名(而不是SELECT *)。
给出coumn名称别名(即 SELECT a.Column1 AS Fred ,Fred是别名)
答案 2 :(得分:1)
试试这个::
SELECT
*
FROM
popular_search ps
inner join categories c on (ps.category_id = c.id)
ORDER BY `hits` DESC LIMIT 9
答案 3 :(得分:1)
我想,你需要知道表别名。因此,您可以将两个别名[新名称]用于两个表,并在选择查询中单独引用它们。 由于有很多例子,我不会在这里重写。请看这里: http://www.w3schools.com/sql/sql_alias.asp Table alias
答案 4 :(得分:0)
这正是您正在寻找的东西 http://www.w3schools.com/sql/sql_join_inner.asp
试一试..