我可以使用匹配中另一个表中的值替换一个表中的输出值吗?

时间:2015-10-27 13:29:16

标签: php mysql left-join

我有一个表格的例子:帖子和类别。帖子分配了一个类别,但是通过ID号。抓住我的帖子时,我想执行LEFT JOIN并获取与该帖子关联的类别的名称,然后切换输出 - 而不是实际的表格内容 - 直接包含名称代替值。到目前为止,这就是我所拥有的,而且我知道它适用于LEFT JOIN,但更换值是我感到困惑的地方,尽管我认为这是可能的

        SELECT * FROM nve_multi_posts
        LEFT JOIN nve_categories
        SELECT
        CASE
        WHEN nve_multi_posts.category = nve_categories.id
        THEN
        nve_multi_posts.category = nve_categories.name
        END                 
        ON nve_multi_posts.category = nve_categories.id

我搞砸了什么?

1 个答案:

答案 0 :(得分:1)

就这么简单:

SELECT p.*, c.*
FROM nve_multi_posts p
LEFT JOIN nve_categories c
ON p.category = c.id

或者您是否希望某种UPDATE查询来修改nve_multi_posts表中存储的数据?

如果您只需要从查询返回的命名列,则可以将所需的每个列别名为:

SELECT p.id as post _id,
       p.category as category_id,
       c.name as category
FROM nve_multi_posts p
LEFT JOIN nve_categories c
ON p.category = c.id