我有这个查询:
$criteria = new CDbCriteria ;
$criteria->select = "usuarioproyectotiendaid, upt.usuarioid,
proyecto.*, upt.tiendaid, upt.fechainicio, estado.estadodsc,
upt.lunes, upt.martes, upt.miercoles, upt.jueves, upt.viernes,upt.sabado, upt.domingo,
t.tiendaid, t.clienteid, canal.canaldsc, formatodsc, ciudaddsc, regiondsc, ndeterminante,
td.telefono, td.contacto, td.horaIni, td.horaFin, td.latitude, td.longitude,
sucursal, nielsen, tienda, calle, colonia, cp, t.activo" ;
$criteria->join =" join usuarioproyectotienda upt on upt.tiendaid = t.tiendaid and upt.usuarioid=".$usuarioid;
$criteria->join.=" join canal on canal.canalid = t.canalid";
$criteria->join.=" join formato on formato.formatoid = t.formatoid";
$criteria->join.=" join ciudad on ciudad.ciudadid = t.ciudadid";
$criteria->join.=" join region on region.regionid = t.regionid";
$criteria->join.=" join tienda_detalles td on td.tienda_id = t.tiendaid";
$criteria->join.=" join proyecto on proyecto.proyectoid = upt.proyectoid";
$criteria->join.=" join estado on estado.estadoid = t.ciudadid";
当表tienda_detalles已满时,一切正常(5个结果),但是当我删除该表中的数据时,查询不会给我任何结果。
该表只是完成表“ tienda”中信息的可选数据,因此,如果没有数据,我仍然应该有5个结果,该怎么办?
如果需要,我可以发布真实的sql查询。
最佳答案
您应该使用LEFT JOIN
而不是JOIN
。JOIN
需要联接表中的数据,但如果未找到任何行,则LEFT JOIN
允许它们为null。
关于mysql - 加入Mysql效果不佳,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23298282/