我用Yii实现了我的项目。我写了单表的查询,就像带条件的查询。
我想要编写从两个不同的表中调用的查询。我有食谱和配料表。配方表我有超过7个字段。recipe_id、菜名、course_id、type等另一种表格成分。id,ingredient_name。
$result="SELECT * FROM recipe WHERE name LIKE '%$name%' AND `cuisinename` LIKE
'$cuisine1%' AND course_id LIKE '%$course1%' AND `type` LIKE '%$type1%'
AND `calorie_count` LIKE '$calorie1%' ORDER BY recipe_id DESC";我写了这个条件。我的搜索功能运行得很好。但我想从另一个表中显示,也就是配料表。
我可以写like查询吗??
发布于 2014-04-16 17:04:40
听起来你需要一个JOIN。然而,我认为食谱和配料在你的数据库中会有一个多对多的关系。您需要首先为它们创建一个associative table,然后使用INNER JOIN来链接这3个表。
如下所示:
SELECT /* you stuff */
FROM recipe_ingredients ri
INNER JOIN recipe r ON ri.recipe_id = r.id
INNER JOIN ingredients i ON ri.ingredient_id = i.id
WHERE /* do you like stuff here */发布于 2014-04-16 17:12:52
根据我的评论,你可以试试这个;
/* first query */
$query = "SELECT * FROM recipe WHERE name LIKE '%$name%' AND `cuisinename` LIKE '$cuisine1%' AND course_id LIKE '%$course1%' AND `type` LIKE '%$type1%' AND `calorie_count` LIKE '$calorie1%' ORDER BY recipe_id DESC";
$result = $mysqli->query($query);
/* numeric array */
$ret1 = $result->fetch_array(MYSQLI_NUM);
/* second query */
$query = "Whatever is in your second query?"; //add your second query here..
$result = $mysqli->query($query);
/* numeric array */
$ret2 = $result->fetch_array(MYSQLI_NUM);
/*final result set */
$result = array_merge((array)$ret1, (array)$ret2);发布于 2014-04-16 17:18:34
如果您使用的是Yii,请使用查询构建器http://www.yiiframework.com/doc/guide/1.1/en/database.query-builder
查询将如下所示
Yii::app()->db->createCommand()
->select('*, i.ingridient_name')
->from('recipe t')
->join('ingredients i', 'i.recipe_id=t.id')
->where('name LIKE :name AND `cuisinename` LIKE
:cuisine1 AND course_id LIKE :course1 AND `type` LIKE :type1
AND `calorie_count` LIKE :calorie1', array(
':name'=>'%'.$name.'%',
':cuisine1'=>'%'.$cuisine1.'%',
))
->order('recipe_id DESC')
->queryAll();https://stackoverflow.com/questions/23104625
复制相似问题