2016-08-03 13 views
-2

这张图片是我的MySQL表格。 enter image description here我只想在结果中的用户表中的行

这些是我的代码。

$buyuser = CHtml::encode($_POST['buyuser']); 
      $criteria = new CDbCriteria; 
      $criteria->distinct = FALSE; 
      $criteria->with = array('addresses'=>array('alias'=>'adres', 'together'=>true),'addresses.city'=>array('alias'=>'city', 'together'=>true)); 
      $criteria->addCondition('t.name LIKE "'.$buyuser.'%" OR t.name LIKE "% '.$buyuser.'%" OR t.lastname LIKE "'.$buyuser.'%" OR t.lastname LIKE "% '.$buyuser.'%" OR adres.store LIKE "'.$buyuser.'%" OR adres.store LIKE "% '.$buyuser.'%" OR city.name LIKE "'.$buyuser.'%" OR city.name LIKE "% '.$buyuser.'%"'); 
      $users = Users::model()->findAll($criteria); 

它的工作,但我想也看到重复的记录时city.name或姓氏或商店是一个。 我需要所有地址。

+1

就在方评论,下次你可以粘贴SQL代码或类似MySQL工作台工具的图像:https://www.mysql.com/products/workbench/ – Eduardo

回答

0

我改变了findAll中的基表和我的答案。

$buyuser = CHtml::encode($_POST['buyuser']); 
     $criteria = new CDbCriteria; 
     $criteria->distinct = FALSE; 
     $criteria->with = array('user'=>array('together'=>true),'city'=>array('together'=>true)); 
     $criteria->addCondition('user.name LIKE "'.$buyuser.'%" OR user.name LIKE "% '.$buyuser.'%" OR user.lastname LIKE "'.$buyuser.'%" OR user.lastname LIKE "% '.$buyuser.'%" OR CONCAT(user.name," ",user.lastname) LIKE "'.$buyuser.'%" OR CONCAT(user.name," ",user.lastname) LIKE "% '.$buyuser.'%" OR t.store LIKE "'.$buyuser.'%" OR t.store LIKE "% '.$buyuser.'%" OR city.name LIKE "'.$buyuser.'%" OR city.name LIKE "% '.$buyuser.'%"'); 
     $addresses = Addresses::model()->findAll($criteria); 
+1

您所需要的所有地址或所有用户与所有地址? – Eduardo

相关问题