【问题标题】:Drupal 7 - Multiple Joins in Query Giving Me TroubleDrupal 7 - 查询中的多个联接给我带来了麻烦
【发布时间】:2012-05-14 21:01:41
【问题描述】:

向 Drupal 站点的用户注册页面添加新字段时,新字段不会存储在“用户”表中,而是存储在它们自己的单独表中。我设置了一个自定义表单模块页面,用户可以在其中根据年龄、性别、如果他们是学生以及他们是否选择在绰号 Live 下接收消息来选择哪些人接收他们的消息。我以前从未在 mySQL 查询中使用过“join”,所以我不确定 Drupal 数据库 API 的适当语法是什么。这是我目前拥有的:

$query = db_select("field_data_field_age", "a");
$query->join("field_data_field_gender", "g", "a.entity_id = g.entity_id");
$query->join("field_data_field_phone_number", "p", "a.entity_id = p.entity_id AND g.entity_id = p.entity_id");
$query->join("field_data_field_student", "s", "a.entity_id = s.entity_id AND g.entity_id = s.entity_id AND p.entity_id = s.entity_id");
$query->join("field_data_field_live", "l", "a.entity_id = l.entity_id AND g.entity_id = l.entity_id AND p.entity_id = l.entity_id AND s.entity_id = l.entity_id");
$query->groupBy("p.entity_id");
$query->fields("p", array("field_phone_number_value"))
    ->condition("a.field_age_value", $values["age_lower"], >=)
    ->condition("a.field_age_value", $values["age_upper"], <=)
    ->condition("l.field_live_value", "Yes", =)
    ->condition("g.field_gender_value", values["gender"], =);

$phone_numbers = $query->execute();

这段代码破坏了我的网站,我不确定自己做错了什么。同样,我尝试在“multiple joins mysql”下搜索 Google,但没有找到专门处理 Drupal 数据库 API 的任何内容。任何帮助将不胜感激,谢谢!

【问题讨论】:

  • 这是您模块中的确切代码吗?如果是这样,倒数第三行在“values”变量上缺少一个 $。此外,运算符 >=、
  • 成功了!肯定是愚蠢的错误,非常感谢您的帮助,如果您将评论添加为答案,我会接受。

标签: database forms drupal join


【解决方案1】:

倒数第三行的“values”变量缺少 $。

此外,运算符 >=、

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-02
    • 1970-01-01
    相关资源
    最近更新 更多