我试图解决一个查询来搜索datatables脚本中的所有参数与服务器端..但在表A的一个字段中,我调用表B的id。我需要搜索表的描述B,我试过这个。
select * from asesor
where dni_asesor like '%"der"%' or
apellido_paterno like '%"SOMETHING"%' or
apellido_materno like '%"SOMETHING"%' or
nombres like '%"SOMETHING"%' or nro_cuenta like '%"SOMETHING"%' or
(select distinct cliente.nombre_cliente FROM cliente join asesor on cliente.id_cliente=asesor.id_cliente where nombre_cliente like '%"SOMETHING"%')
表格是:
Table: asesor
Columns:
id_asesor int(11) UN zerofill AI PK
dni_asesor varchar(50)
apellido_paterno varchar(50)
apellido_materno varchar(50)
nombres varchar(50)
id_cliente int(11)
Table: cliente
Columns:
id_cliente int(11) UN zerofill AI PK
dni_cliente varchar(50)
nombre_cliente varchar(50)
请帮忙!!! :d
答案 0 :(得分:1)
您可以使用从asesor
到cliente
的左连接来检查其他表格。然后,如果两个表之间的id_cliente
匹配,nombre_cliente
将不为空,您可以测试它的值。如果没有匹配项,则nombre_cliente
将为空,并且它将使where
子句中的条件失败。
我没有测试过这个,因为我没有你的桌子,但它应该适合你。
SELECT * FROM asesor
LEFT JOIN (SELECT DISTINCT cliente.nombre_cliente, id_cliente FROM cliente) cliente
ON cliente.id_cliente=asesor.id_cliente
WHERE dni_asesor LIKE '%"der"%' OR
apellido_paterno LIKE '%"SOMETHING"%' OR
apellido_materno LIKE '%"SOMETHING"%' OR
nombres LIKE '%"SOMETHING"%' OR nro_cuenta LIKE '%"SOMETHING"%' OR
cliente.nombre_cliente LIKE '%"SOMETHING"%'