Php 从两个限制为1的表格中选择第二个表格
大家好,我做了一个简单的搜索,我按显示列获取所有列,同时我做了一个简单的条件,如下所示Php 从两个限制为1的表格中选择第二个表格,php,mysql,select,Php,Mysql,Select,大家好,我做了一个简单的搜索,我按显示列获取所有列,同时我做了一个简单的条件,如下所示 while($columns = mysql_fetch_assoc($res)){ if(!in_array($columns['Field'],$columns_a)){ $columns_a[] = 'a.`'.$columns['Field'].'`'.' LIKE \'%'.$_POST['search'].'%\''; }
while($columns = mysql_fetch_assoc($res)){
if(!in_array($columns['Field'],$columns_a)){
$columns_a[] = 'a.`'.$columns['Field'].'`'.' LIKE \'%'.$_POST['search'].'%\'';
}
}
while($columns2 = mysql_fetch_assoc($res2)){
if(!in_array($columns2['Field'],$columns_a2)){
$columns_a2[] = 'b.`'.$columns2['Field'].'`'.' LIKE \'%'.$_POST['search'].'%\'';
}
}
$column_condition = implode(" OR ",columns_a);
$column_condition .= ' OR '.implode(" OR ",columns_a2);
因此,在这之后,我有很大的条件去寻找。对于我的需求,它工作得很好,速度也很快,但有问题,sql给了我两个结果
$sql = mysql_query(
"SELECT *
FROM ".$prefix."orders a, ".$prefix."order_item b
WHERE ".$column_condition." AND a.order_id = b.order_id
ORDER BY a.order_id DESC",$connect);
像
第一表-订单
order_id | name
1 | Chesus
2 | Johny
第二张表-订单项目
order_id | order_item_id | product_name
1 | 999 | balsame
2 | 998 | better balsame
2 | 997 | worse_balsame
因此,如果我搜索Johny,它会给我2个结果,而不是1个
group by a.order_id
在“订购人”!:)之前进行查询 使用正确的连接而不是隐式连接,然后可以正确使用限制语法 乙二醇
问题是,你想要什么。向我们展示你想要的结果,然后我们可以提供帮助。是否将两行中的数据都显示为1?或者你想用最大/最小的
order\u item\u id
来显示条目吗?养成使用mysqli而不是mysqli的习惯。因为mysqli不受欢迎。你应该得到一枚奖章:D2更多分钟它的新鲜:DY你的解决方案对我的其他功能很好,但现在正如guy bellow告诉我的那样,我只需要一个小组,谢谢你确定,但是请注意隐式联接是一种糟糕的做法,您确实应该学习如何在查询中联接表
$sql = mysql_query("
SELECT *
FROM ".$prefix."orders a
JOIN ".$prefix."order_item b on (a.order_id = b.order_id)
WHERE
".$column_condition."
ORDER BY a.order_id DESC
LIMIT 0,1
",$connect);