php - 使用 zend 框架的 SQL 查询逻辑

标签 php mysql zend-framework

所以,我的逻辑情况有点糟糕,我的数学也不是那么好, 所以我需要你的帮助“构建”一个查询,通过连接查询从 3 个不同的表中获取信息。 我的结构是这样的:

  • 用户表:带有主键“ID”
  • 广告事件表:带有主键“ID”
  • User_Campaign 表:包含 user_id 和 Campaign_id 行。

我想提取用户 ID X 的 user_campaign 表中不存在的所有营销事件。

我的查询是针对 zend 框架的。 我将不胜感激任何形式的帮助,谢谢,以色列的晚上好!

我当前的查询:

$q = $this->select()
                ->setIntegrityCheck(false)
                ->from(array('c' => 'campaigns'))
                ->join(array('uc'=> 'user_campaign'), 'uc.campaign_id != c.id AND uc.user_id != 1', array('campaign_id', 'user_id'));

最佳答案

使用左联接尝试此查询,并在联接表上添加 WHERE 以获取有效 id 为空的结果,将返回联接右侧不存在的结果

public function check_access($campaign_id, $user_id) {
    $q = $this->select()
        ->from(array('c' => 'campaigns'))
        ->joinRight(array('uc'=> 'user_campaign'), 'uc.campaign_id = c.id', array('campaign_id', 'user_id'));
        ->where('uc.user_id != ?', $user_id)
        ->where('campaign_id = ?', $campaign_id);

    // User has an entry, return false
    if($this->fetchRow($select))
        return false;

    // User wasn't found, create an entry, and return true
    $this->insert('users_campaigns', array(
        'user_id'       => $user_id,
        'campaign_id'   => $campaign_id
    ));

    return true;
}

关于php - 使用 zend 框架的 SQL 查询逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10972034/

相关文章:

php - 在 PODS 分类法自定义表字段中搜索

php - 加密文本以存储在 mysql 数据库中的最佳方法

phpMyAdmin 与 mysql_fetch_array - 为什么我不能让 GROUP BY 工作?

mysql - 有没有办法获取按日期创建的表列表?

Eclipse PDT 调试设置 (XDebug/Zend)

php - zend 验证多选框

php - 从 css 下拉菜单发布

php - MYSQL - 返回行数组的 INNER JOIN

php - 无法更改数据库中的数据

model-view-controller - 如何在 Zend Framework (1.11) Controller 操作中生成绝对 URL?