2

単純です。複数の列でWHERELIKEを使用するときに結果を結合したい

$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%'";

この命令では、最後の結果を取得しますが、すべての結果を組み合わせているわけではありません。これは正しいステートメントですか?

私は私を助けてくれることを願っています!

4

3 に答える 3

1

あなたを使用INNER JOINすると、関連する行のみが一致します。私があなたを正しく理解すれば、に切り替えるだけでLEFT JOINあなたは幸せになります。また、最後にステートメントが必要になる場合があります。GROUP BY

于 2012-07-24T02:53:57.570 に答える
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で検索する文字列全体であると想定しています。

于 2012-07-24T03:40:39.017 に答える
0

LIKE'%$ termsearch%'はLIKE'%' + @termsearch +'%'である必要があります

于 2012-07-24T03:00:38.197 に答える