我有一个多表SQL查询。
我的需求是:查询是否应该通过"etablisement_id"生成一行。。。以及我想在同一查询中返回的所有信息。
问题是,这个查询目前在一个表上,"机构"可能有"多张照片",突然间,我的查询我目前为同一id生成了几行…
我想要以下语句-LEFT JOIN
etablisementContenuMultimedia ON etablissement.etablissement_id = etablissementContenuMultimedia.etablissementContenuMultimedia_etablissementId
-仅显示单个多媒体内容。是否可以在下面的查询中执行此操作?
这是生成的查询。
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 ;
}
你能帮我吗?
真诚,
如果您希望在多个媒体中只显示一个媒体,而不管它是哪一个,那么您可以为查询添加一个限制吗?之后,您可以调整查询是否为ASCending或DESending?
这个查询应该有一个机构的图像(或图像),还是每个活动机构都有一个图像?我看到你有一个极限0.30,这意味着你可能正在分页。。。。
如果你想要的结果是只搜索一个机构,并且它找到的第一个图像会很好。。只需使用"极限1",您将只得到一个结果。
我花时间重做了数据库的整个模型。。。现在它起作用了。对于有缺陷的系统,没有解决方案