我正在构建与MySQL数据库相关的php应用程序。我在执行特定查询时遇到一些问题,因为我没有使用复杂的查询。我想找出如何构建查询字符串来执行此操作: 基于" cad_proc" " sigla"我想得到" estado"来自" juizo"确保我正在寻找" cad_proc"有" MG"在它上面。
Table1: cad_proc
id - sigla - ...
01 - MG105 - ...
03 - M123 - ...
Table2: juizo
sigla - estado -...
MG105 - MG
M123 - MG
到目前为止,我的查询是:
SELECT * FROM cad_processo WHERE sigla like '$UF';
$UF
是来自用户的输入。
答案 0 :(得分:0)
您发布的功能的正确语法是:
"SELECT * FROM cad_processo WHERE sigla = (SELECT sigla FROM juizo WHERE estado like '%".$UF."%')";
首先,这不是很安全,因为您以这种方式运行SQL注入的风险。为了防止使用bindValue并用关键字替换变量。 (参考:http://php.net/manual/en/pdostatement.bindvalue.php)
答案 1 :(得分:0)
SELECT cad_proc.sigla, juizo.estado, FROM cad_proc INNER JOIN juizo WHERE cad_proc.sigla = juizo.sigla AND juizo.sigla = '%".$UF."%';
答案 2 :(得分:0)
我认为这是你想要的结果
Select card_proc.*, juizo.estado from card_proc left join juizo on (card_proc.sigla=juizo.sigla) where card_proc.sigla like '%$UF%'
或者如果你想做完全匹配..
Select card_proc.*, juizo.estado from card_proc left join juizo on (card_proc.sigla=juizo.sigla) where card_proc.sigla = '$UF'
更新了查询..
Select card_proc.* from card_proc left join juizo on (card_proc.sigla=juizo.sigla) where juizo.estado = '$UF'
答案 3 :(得分:0)
您应该可以使用这样的join
来获取所需的数据:
select cp.sigla from cad_proc as cp
join juizo as j
on j.sigla = cp.sigla
where j.estado = ?
然后绑定$UF
。
这似乎是获取数据的一种回合方式。鉴于样本数据在两个表格中是一致的,我只会使用:
SELECT sigla from juizo where estado = ?