我有几个具有相同过滤器的查询。
例如:
筛选:
$criteria = "AND id_student = 1 AND id_major = 2 ";
查询一:
$query1 = "SELECT * FROM student AS t0
LEFT JOIN major AS t1 ON t0.id_major = t1.id
WHERE 1=1 ";
查询 2:
$query2 = "SELECT * FROM lecturer AS t0
LEFT JOIN major AS t1 ON t0.id_major = t1.id
LEFT JOIN student AS t2 ON t2.id_major = t1.id
WHERE 1=1 "
它将作为
$query1.$criteria
和
$query2.$criteria
如您所见,这将产生查询错误,因为 id_major 不明确。
我的问题是,这个查询的数量很大,所以我不想单独硬编码和更改 $criteria 和 $query。
我试图将 $criteria 更改为
$criteria = "AND student.id_student = 1 AND major.id_major = 2 ";
但它并没有更好,它给了我“你的意思是 t0”、“你的意思是 t2”等错误。
那么,我可以做类似的事情,获取表格的别名吗?所以我可以把它放在 $criteria
$criteria = "AND (get-alias-code).id_student = 1 AND (get-alias-code).id_major = 2 ";
还是有什么其他方法?
我不是这个程序的主要开发者,只是一个错误修复者,所以我不能改变这个程序的大部分内容(因为这些查询可能会影响另一个页面)。