我builing与警予的应用程序,我试图做我的SQL调用“非常道”使用警予查询生成器以相同的方式看到了这个指南警予的MySQL
http://www.yiiframework.com/doc/guide/1.1/en/database.query-builder
上这是我建立的查询:
$diseaseCountSqlQuery = Yii::app()->db->createCommand()
->select ('tbl_disease.ICD10, COUNT(tbl_disease.ICD10) AS disease_count')
->from ('tbl_disease')
->join ('tbl_symptom_disease', 'ICD10=diseaseCode')
->where ($symptomsOrQueryArray)
->group ('ICD10')
->queryAll();
//placeholder
$maxDiseaseCountQuery = Yii::app()->db->createCommand()
->select ('MAX(disease_count) AS max_disease_count')
->from ($diseaseCountSqlQuery)
->queryAll();
//multiple symptom query
$diseaseCodes = Yii::app()->db->createCommand()
->select ('ICD10')
->from ($maxDiseaseCountQuery)
->join ($diseaseCountSqlQuery, 'max_disease_count=disease_count')
->queryAll();
的问题在第二个命令将显示具体线路:
->from ($diseaseCountSqlQuery)
我得到一个“strpos()期望参数1是字符串,数组给定”错误。
我可以解决我的问题,只需将整个mysql命令复制到一个字符串,然后使用create命令,但我想用这个更“优雅”的方式。有人可以帮我修复它,并解释一下子查询如何与查询构建器一起工作?谢谢:)
错误告诉你到底是什么问题:你想使用其中一个字符串预计的数组。你需要做一个'foreach($ diseaseCountSqlQuery作为$ part){...-> from($ part)}'或者其他任何东西。 –
好吧,那么有没有办法在不同的查询中使用sql命令的结果表? –