我正在尝试为Drupal 7.x创建一个模块。在某些时候,我想使用一个SQL查询(JOIN)。当我在MYSQL中尝试查询时,它可以工作。但是当我想在Drupal中尝试时,该数组为空。

因此,我猜想sql查询和drupal查询之间存在差异(可能实现方式不同)。

SQL查询

SELECT * FROM friends
INNER JOIN users
ON friends.uid=users.uid


Drupal实施

    function project_myfriends(){
    // Use database API to retrieve tasks
    $query = db_select('friends', 'f');

    $query->join('users', 'u', 'f.uid = u.uid'); // JOIN

    $query->fields('u', array('name'))
          ->execute();
    return $query;
    }

   /**
    * Implements hook_block_view().
    */
    function project_block_view($delta = ''){
    switch ($delta) {
        case 'project':
            $block['subject'] = t('My Friends');
            // Use our custom function to retrieve data
            $result = project_myfriends();

            $items = array();

            var_dump($result);
            foreach($result as $friend){
                $items[] = array(
                    'data' => $friend->name,
                );
            }
            // No tasks
                if (empty($items)) {
                    $block['content'] = t('No friends.');
                }
                else {
                    // Pass data trough theme function
                    $block['content'] = theme('item_list', array(
                        'items' => $items));
                }
            }
        return $block;
    }


提前Thx

最佳答案

您忘记获取结果查询:

$result = project_myfriends()->execute()->fetchAll();
var_dump($result);

关于mysql - JOIN在SQL中不能在Drupal中工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26200319/

10-14 09:29