私は複数テーブルのSQLクエリを持っています。IDごとに1行を取得するためにSQLクエリを簡略化
私の必要性は:クエリは、私は 'etablissement_id'と同じクエリに戻ってくるすべての情報によって1行を生成する必要があります。
問題は、このクエリは「成立」は「複数の写真を」持っていると、突然あり、私のクエリは、私は現在、同じIDの複数の行を生成し、テーブルの上に現在あるということです...
私は次のことをしたいですステートメント - LEFT JOIN
etablissementContenuMultimedia ON etablissement.etablissement_id = etablissementContenuMultimedia.etablissementContenuMultimedia_etablissementId
- マルチメディアコンテンツは1つだけ表示されます。以下のクエリでこれを行うことは可能ですか?
ここに生成されたクエリがあります。ここで
SELECT DISTINCT `etablissement`. * , `etablissementContenuMultimedia`. * , `misEnAvant`. * , `quartier`. *
FROM `etablissement`
LEFT JOIN `etablissementContenuMultimedia` ON etablissement.etablissement_id = etablissementContenuMultimedia.etablissementContenuMultimedia_etablissementId
LEFT JOIN `misEnAvant` ON misEnAvant.misEnAvant_etablissementId = etablissement.etablissement_id
LEFT JOIN `quartier` ON quartier_id = etablissement_quartierId
WHERE (
misEnAvant_typeMisEnAvantId =1
AND (
misEnAvant_dateDebut <= CURRENT_DATE
AND CURRENT_DATE <= misEnAvant_dateFin
)
)
AND (
etablissement_isActive =1
)
ORDER BY `etablissement`.`etablissement_id` ASC
LIMIT 0 , 30
コードは、ZF
public function find(){
$db = Zend_Db_Table::getDefaultAdapter();
$oSelect = $db->select();
$oSelect->distinct()
->from('etablissement')
->joinLeft('etablissementContenuMultimedia', 'etablissement.etablissement_id = etablissementContenuMultimedia.etablissementContenuMultimedia_etablissementId')
->joinLeft('misEnAvant', 'misEnAvant.misEnAvant_etablissementId = etablissement.etablissement_id')
->joinLeft('quartier', 'quartier_id = etablissement_quartierId ')
->where ('misEnAvant_typeMisEnAvantId = 1 AND (misEnAvant_dateDebut <= CURRENT_DATE AND CURRENT_DATE <= misEnAvant_dateFin) ')
->where ('etablissement_isActive = 1')
->order(new Zend_Db_Expr('RAND()'));
$zSql = $oSelect->__toString();
if(isset($_GET['debug']) AND $_GET['debug'] == 1)
echo $zSql ;
//die();
$oResultEtablissement = $db->fetchAll($oSelect);
return $oResultEtablissement ;
}
は、あなたが私を助けることができる使用されていますか?敬具
、
私は60の施設を持っていれば60行が必要です。現在、私は限界のブレークの問題を置いています。実際、私はたまに1つの機関で7〜8行を使いますが、「ランド」を使用すると、最初の5つの結果で同じ施設を3回持つ可能性があります。 このリクエストは、私のホームページの5つの機関でランダムに作成されます。そして、私は、PHPの重複排除ではなく、良いアプリケーションを作る方法を見つけるだろう。 –