0

t_servicioとcat_clientesという名前の2つのテーブルがあり、次のように構成されています。

t_servicio: t_servicio

cat_clientes: cat_clientes

テーブルt_servicioは「Id_Cliente」をホストします。だから私は今のところ多くの列の検索エンジンをやっています。ただ「Id_cliente」列を検索したいだけです。問題は、 LIKE条件を使用してテーブルt_servicioとテーブルcat_clientesを結合している顧客(クライアント)の名前を取得して一致を見つけるにはどうすればよいですか?

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

編集:

たとえば、結果を取得するとき、Marca、Producto y SubProductoの列にはIDのみが表示されますが、彼女の名前が必要です。文は何でしょうか。

私はこのような結果が欲しい: このような結果

4

3 に答える 3

2

私があなたの質問に何かを見逃していないことを願っていますが、これを行うためのSQLは簡単です:

select s.Id_Servicio, c.Nombre
from cat_clientes c, t_servicio s
where c.Id = s.Id_Cliente
and c.Nombre like '%Uno%';

これを拡張して(出力に列を追加して)、いずれかのテーブルの他の列を含めることができます。一緒にリンクする他のテーブルがあると仮定すると、クエリを作成できます。あなたはテーブルMarca、Productoなどについて言及していますが、構造を提供していないので、私は推測しています:

select s.Id_Servicio, m.Marca, p.Producto, c.Nombre
from cat_clientes c, t_servicio s, t_producto p, t_subproducto sp, t_marca m
where c.Id = s.Id_Cliente
and m.Id = s.Id_Marca
and p.Id = s.Id_Producto
and sp.Id = s.Id_SubProducto
and c.Nombre like '%Uno%';
于 2012-07-22T23:12:48.773 に答える
2

私のスペイン語は良くありませんが、正しく理解していればLIKE、cat_clientesテーブルのP_Nombre(名前は正しいですか?)の条件を使用する必要があります。ここで、clienteIdはt_servicioテーブルにあります。これが正しければ、単純なものを使用するINNER JOINことでうまくいくはずです。

SELECT *
FROM t_servicio T
    INNER JOIN cat_clientes C ON C.Id = T.Id_Cliente
WHERE C.P_Nombre LIKE '%queso%'

編集:「たとえば、結果を取得するとき、Marca、Producto y SubProductoの列にはIDのみが表示されますが、彼女の名前が必要です。文はどうなりますか?」...

Marca、Producto、およびSubProductoもIdである場合、Id_Clienteと同様に、これらのキーが参照するテーブルに結合する必要があります。たとえば、Productsテーブルがある場合は、次を追加します。

SELECT C.P_Nombre, P.Nombre -- (Or whatever column has the product name)
FROM t_servicio T
    INNER JOIN cat_clientes C ON C.Id = T.Id_Cliente
    INNER JOIN Products P ON P.Id = C.Producto
WHERE C.P_Nombre LIKE '%queso%'

SubProductoとMarcaについても同じです。

于 2012-07-22T23:13:56.380 に答える
0
SELECT * FROM `cat_clientes` AS c LEFT JOIN `t_servicio` AS t ON(c.id = t.Id_Cliente)
于 2012-07-22T23:14:49.123 に答える