php - 如何调整这个研究查询?
问题描述
我需要调整此查询以在另一列和另一个表中进行搜索(如)。
看:
$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
和列中名为e的新表格。registro
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
推荐阅读
- swift - 如何向具有圆角的 UIView 添加阴影
- ios - 如何加快 tvOS 中的 UICollectionView 单元格渲染
- python - AttributeError:“经理”对象没有属性
- javascript - 如何仅在 Ext JS 6 中构建具有模型、视图、存储的基本网格面板?
- php - 将产品添加到购物车并用户刷新页面后,如何显示添加到购物车中的数据
- c# - 从 gmail 发送带有附件的 Net.Mail 时出错
- python - Librosa Keras 音乐分析神经网络 Python:输入值错误
- ios - 滚动前未加载 Collectionviewcell 图像
- hibernate - 在通过 Thymeleaf 进行实体编辑期间重新生成 ID 的问题
- html - 导航栏中的 Bootstrap 4 分隔符