2012-01-29 28 views
0

這是一個的How do you apply multiple conditions to a leftjoin on a db_select?多重條件SQL LeftJoin使用Drupal 7

這裏延續的一個問題:如何給你做一個leftJoin與其中條件適用於稍後的表的條件?

即說你有一個關係動物園 - >籠子 - >動物。你想要返回一組所有的籠子,如果這些動物有鱗片,就要給這些動物提供信息。

 
set 1 | set 2 
--------------- 
cage 1 | lizard (scales) 
cage 1 | elephant 
cage 2 | bird 
cage 3 | rhino 
cage 4 | lions 

我想回:

 
set 1 | set 2 
--------------- 
cage 1 | lizard (scales) 
cage 2 | -empty- 
cage 3 | -empty- 
cage 4 | -empty- 

有什麼想法?

回答

0

也許這將是有益的:

// select from your table 
$query = db_select(....); 
.... 

$query->condition('set2.animal_name', db_like('scales'), 'LIKE'); 
$query->groupBy('set1.cage_field'); 

// continue query 
.... 

哪裏set2是你表動物和animal_name是你的名字領域。

但這個查詢將返回給你以下

set 1 | set 2 
--------------- 
cage 1 | lizard (scales)