2016-05-27 10 views
1

2つのテーブルに1対多の関係があります。私は両方のテーブルの(特定のフィールドの)等しい値に基づいてレコードを取得したいと思います。今、私はこの砂糖クエリは砂糖のメソッドと同等です。

$queryProspects = new SugarQuery(); 
$queryProspects->from(BeanFactory::getBean('Prospects'), array('team_security' => false)); 
$leads = $queryProspects->join('lead')->joinName(); 
$queryProspects->select(array("first_name")); 
$queryProspects->where()->equals('first_name', 'leads.first_name'); 
$resultProspects = $queryProspects->execute(); 

ようにそれをやっているあなたは、私がリードテーブルのFIRST_NAMEと展望台のFIRST_NAMEと一致するようにしようとしているequalsメソッドで見ることができます。

私がここで直面している問題は、equalsメソッドの2番目の引数は、leadテーブルのfirst_nameフィールドの値ではなく、 'leads.first_name'のような完全な値と見なされるということです。 prospectsテーブルのfirst_nameとleadテーブルのfirst_nameを一致させたい。私はどうすればそれに行くことができますか?

+0

は、私はあなたが( 'リード')に参加> $ queryProspects-リードにリードからテーブル名を修正する必要があると思う - > joinName(); – sAcH

+0

いいえ、結合にはテーブル名ではなくリンクが必要です。 LeadsはProspectsのリンクです> vardefs.php –

答えて

0
$queryProspects = new SugarQuery(); 
$queryProspects->from(BeanFactory::getBean('Prospects'), array('team_security' => false)); 
$leads = $queryProspects->join('lead')->joinName(); 
$queryProspects->select(array("first_name")); 
$queryProspects->where()->equals('first_name', "$leads.first_name"); 
$resultProspects = $queryProspects->execute(); 
関連する問題