public function queryRecordCountRelated($sourceType, $destType, $linkID, $addSql = '', $bindings = array())
{
list($sourceTable, $destTable, $linkTable, $sourceCol, $destCol) = $this->getRelationalTablesAndColumns($sourceType, $destType);
$this->updateCache();
//check if cache chain has been broken
if ($sourceType === $destType) {
$sql = "\n\t\t\tSELECT COUNT(*) FROM {$linkTable}\n\t\t\tINNER JOIN {$destTable} ON\n\t\t\t( {$destTable}.id = {$linkTable}.{$destCol} AND {$linkTable}.{$sourceCol} = ? ) OR\n\t\t\t( {$destTable}.id = {$linkTable}.{$sourceCol} AND {$linkTable}.{$destCol} = ? )\n\t\t\t{$addSql}\n\t\t\t-- keep-cache";
$bindings = array_merge(array($linkID, $linkID), $bindings);
} else {
$sql = "\n\t\t\tSELECT COUNT(*) FROM {$linkTable}\n\t\t\tINNER JOIN {$destTable} ON\n\t\t\t( {$destTable}.id = {$linkTable}.{$destCol} AND {$linkTable}.{$sourceCol} = ? )\n\t\t\t{$addSql}\n\t\t\t-- keep-cache";
$bindings = array_merge(array($linkID), $bindings);
}
return (int) $this->adapter->getCell($sql, $bindings);
}