我需要调整此查询以在另一列和另一张表中进行搜索(例如)。
看到:
$query2 = "
select distinct(lances.codigo)
, datacompra
, horacompra
, cupom
from lances
, ".$tabelaCad."
where lances.idcliente = ".$tabelaCad.".id
and lances.datapgto = '0000-00-00'
and lances.horapgto = '00:00:00'
and (".$tabelaCad.".nome like '%".$cliente."%' or ".$tabelaCad.".usuario like '%".$cliente."%')
group
by lances.codigo
order
by lances.datacompra desc
, lances.horacompra desc
";
他目前仅在以下位置搜索:
".$tabelaCad.".nome and ".$tabelaCad.".usuario.
变量
$tabelaCad
是名为cadastro
的表的名称,而变量cliente
是接收搜索POST的表的名称。我还需要她在表
codigo
的lances
列和registro
e reg1
列的新表reg2
中查找。在这种情况下,查询是什么样的?我尝试了几种方法,但它不起作用。
我正在使用MySQL 5.7,仍然...
最佳答案
经过长时间的讨论,我们找到了表之间的最后一个关系。
从registro.reg1
到lances.codigo
。
因此,解决问题的最佳方法是使用inncer join。
您可以节省不必要的键入内容,并且可以使用别名来寻址表,这对于编写过程而言更为方便。
这是我完成的解决方案:
<?php
$query2 = "
select
distinct lc.codigo as codigo,
lc.datacompra as datacompra,
lc.horacompra as horacompra,
lc.cupom as cupom
from `lances` as lc
inner join `".$tabelaCad."` as ca on lc.idcliente = ca.id
inner join `registr` as ri on lc.codigo = ri.reg1
where lc.idcliente = ca.id
and lc.datapgto = '0000-00-00'
and lc.horapgto = '00:00:00'
and (ca.nome like '%".$cliente."%' or ca.usuario like '%".$cliente."%')
group
by lc.codigo
order
by lc.datacompra desc, lc.horacompra desc
";
?>
我将它们放在选择中,因为我不完全知道您打算使用xD