SQL:如何使用where来组合多列的结果

时间:2012-07-24 02:46:17

标签: sql

简单,我想在多列中使用WHERE LIKE时结合结果

$query = "SELECT T.Id_Servicio ids, 
            C.Nombre cliente, 
            T.T_Atencion atencion, 
            M.Nombre marca, 
            P.Nombre producto, 
            SU.Nombre subproducto, 
            T.Observaciones obs, 
            T.Estado edo
            FROM t_servicio T
            INNER JOIN cat_clientes C ON C.Id = T.Id_Cliente
            INNER JOIN cat_marcas M ON M.Id = T.Marca
            INNER JOIN cat_productos P ON P.Id = T.Producto
            INNER JOIN cat_subproducto SU ON SU.Id = T.SubProducto
            WHERE C.Nombre LIKE '%$termsearch%'
            OR T.T_Atencion LIKE '%$termsearch%'
            OR M.Nombre LIKE '%$termsearch%'
            OR P.Nombre LIKE '%$termsearch%'
            OR SU.Nombre LIKE '%$termsearch%'";

使用此指令,取最后一个结果,但不会合并所有结果,这将是正确的声明吗?

我希望能帮到我!

3 个答案:

答案 0 :(得分:1)

使用INNER JOIN,您只会匹配相关的行。 如果我找对你,简单切换到LEFT JOIN会让你更快乐。 您还可能最终需要GROUP BY语句。

答案 1 :(得分:1)

你能试试吗?

SELECT T.Id_Servicio ids, 
            C.Nombre cliente, 
            T.T_Atencion atencion, 
            M.Nombre marca, 
            P.Nombre producto, 
            SU.Nombre subproducto, 
            T.Observaciones obs, 
            T.Estado edo
            FROM t_servicio T
            LEFT JOIN cat_clientes C ON C.Id = T.Id_Cliente
            LEFT JOIN cat_marcas M ON M.Id = T.Marca
            LEFT JOIN cat_productos P ON P.Id = T.Producto
            LEFT JOIN cat_subproducto SU ON SU.Id = T.SubProducto
            WHERE C.Nombre LIKE '%$termsearch%'
            OR T.T_Atencion LIKE '%$termsearch%'
            OR M.Nombre LIKE '%$termsearch%'
            OR P.Nombre LIKE '%$termsearch%'
            OR SU.Nombre LIKE '%$termsearch%'

你和什么比较? 我假设$ termsearch是你要在SU.Nombre中搜索的整个字符串

答案 2 :(得分:0)

LIKE'%$ termsearch%'应该是'%'+ @termsearch +'%'