Drupal7中的innerjoin查询

Drupal7中的innerjoin查询,drupal,drupal-6,drupal-7,Drupal,Drupal 6,Drupal 7,我将此查询应用于D6以下的查询,不工作..不知道我做错了什么..innerjoin是否在某些情况下失败 $result = db_select('px_slides','s') ->join('node','n','s.vid = n.vid') ->fields('s',array('tissue_type','body_site')) ->fields('n',array('sticky','title')) ->condition('

我将此查询应用于D6以下的查询,不工作..不知道我做错了什么..innerjoin是否在某些情况下失败

$result = db_select('px_slides','s')
    ->join('node','n','s.vid = n.vid')
    ->fields('s',array('tissue_type','body_site'))
    ->fields('n',array('sticky','title'))
    ->condition('n.status','1','=')
    ->condition('s.cid','126','=')
    ->execute()->fetchObject();
drupal 6查询我有:

    $result = db_query('
  SELECT n.nid, n.vid, n.sticky, n.title, n.created, s.cid, s.ref_id, s.viewurl, s.specimen_type, s.tissue_type, s.body_site, s.test_type, s.algorithm, s.result 
  FROM {px_slides} s INNER JOIN {node} n ON n.vid = s.vid
  WHERE n.status = 1 ')->execute();

join方法不是这样的。您必须执行以下操作:

$query = db_select('px_slides','s')
    ->join('node','n','s.vid = n.vid');
$query->fields('s',array('tissue_type','body_site'))
    ->fields('n',array('sticky','title'))
    ->condition('n.status','1','=')
    ->condition('s.cid','126','=');
$result = $query->execute()->fetchObject();
您还可以使用to string magic方法查看它将要执行的查询

$query->__toString();

join方法不是这样的。您必须执行以下操作:

$query = db_select('px_slides','s')
    ->join('node','n','s.vid = n.vid');
$query->fields('s',array('tissue_type','body_site'))
    ->fields('n',array('sticky','title'))
    ->condition('n.status','1','=')
    ->condition('s.cid','126','=');
$result = $query->execute()->fetchObject();
您还可以使用to string magic方法查看它将要执行的查询

$query->__toString();

您需要将对
->join()
的调用放在单独的一行,因为它不会返回查询对象:

$query = db_select('px_slides','s')  
  ->fields('s',array('tissue_type','body_site'))
  ->fields('n',array('sticky','title'))
  ->condition('n.status','1','=')
  ->condition('s.cid','126','=');

$query->join('node','n','s.vid = n.vid');

$result = $query->execute()->fetchObject();

您需要将对
->join()
的调用放在单独的一行,因为它不会返回查询对象:

$query = db_select('px_slides','s')  
  ->fields('s',array('tissue_type','body_site'))
  ->fields('n',array('sticky','title'))
  ->condition('n.status','1','=')
  ->condition('s.cid','126','=');

$query->join('node','n','s.vid = n.vid');

$result = $query->execute()->fetchObject();
试试这个

$query = db_select('px_slides', 's');
$query->innerJoin('node,'n','s.vid = n.vid');
$query->fields('s',array('tissue_type','body_site'));
$query->fields('n',array('sticky','title'));
$query->condition('n.status','1');
$query->condition('s.cid','126');
$result= $query->execute()->fetchAll(PDO::FETCH_ASSOC);
试试这个

$query = db_select('px_slides', 's');
$query->innerJoin('node,'n','s.vid = n.vid');
$query->fields('s',array('tissue_type','body_site'));
$query->fields('n',array('sticky','title'));
$query->condition('n.status','1');
$query->condition('s.cid','126');
$result= $query->execute()->fetchAll(PDO::FETCH_ASSOC);

未工作,不知何故将join语句放在字段和条件工作之后未工作,不知何故将join语句放在字段和条件工作之后