【问题标题】:Selecting specific fields from database table从数据库表中选择特定字段
【发布时间】:2012-08-06 12:23:29
【问题描述】:

我有这段代码,它从数据库中选择内容类型,然后根据内容类型构建它的视图。

$q = db_query('SELECT n.nid, n.title, r.body, f.filename
FROM {node} n
INNER JOIN {node_revisions} r ON n.vid = r.vid
INNER JOIN {content_type_brands} p ON p.nid = n.nid
INNER JOIN {files} f ON f.fid = p.field_deyat_pic_fid
WHERE n.type =  "brands"');

但是当我需要使此代码仅显示特定内容类型时,它会显示每种内容类型。我该怎么做才能只显示选定的内容类型?

【问题讨论】:

    标签: php mysql drupal-6


    【解决方案1】:

    在您的 WHERE 子句中将 n 更改为 p

    SELECT  n.nid, n.title, r.body, f.filename
    FROM    {node} n
                INNER JOIN {node_revisions} r 
                    ON n.vid = r.vid
                INNER JOIN {content_type_brands} p 
                    ON p.nid = n.nid
                INNER JOIN {files} f 
                    ON f.fid = p.field_deyat_pic_fid
    // WHERE    p.type =  'brands'
    WHERE p.type IN ('brand1','brand1','brand1')
    

    【讨论】:

    • 它将如何改变输出结果?
    • 您的查询基于type node。此查询基于{content_type_brands}
    • 将 n 更改为 p 给了我空白页,没有结果。我做错了什么?
    • 如何将其更改为多个值?顺便说一句,你能上传样本记录和你想要的结果吗?它可以帮助您解释您的问题。 :)
    • 这里是网站:ultrastep.ru/assortiment,它是俄语的,但我必须做什么,它才能让该页面上的一些品牌隐藏起来。当我发现这个块在哪里构建时,我决定在品牌显示在页面上之前对其进行过滤。如果我正确理解了 DB 的结构,则有一个名为 node_revision 的表,并且在该表中有一个名为“title”的字段,它代表内容类型的标题。我必须只打印选定的内容类型,而不是所有匹配过滤器的内容
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-10
    • 2020-01-23
    • 1970-01-01
    • 2021-08-16
    • 2017-04-06
    • 1970-01-01
    相关资源
    最近更新 更多