我有3张桌子:
**clientes**
cli_clientes nome
50 A
52 B
**telefones_cliente**
cli_cliente tel_telefone
50 387
50 386
50 385
52 400
**telefones**
tel_telefone tel_contato
385 RODOLFO - COMPRAS
386 SONIA CONTAS A PAGAR RAMAL 201
387 VANESSA CONTABILIDADE RAMAL 202
388 (null)
389 (null)
我需要来自客户端的结果,并且只有telefones_cliente的第一个匹配项,以及来自telefones的tel_contato。 我只是做了很多尝试,所以我需要帮助,我的上一个无法正常工作的SQL:
SELECT
c.cli_cliente
,cli_razao_social,
tc.tel_telefone
-- ,telefones.tel_contato
FROM
clientes c
JOIN telefones_cliente tc ON c.cli_cliente = (SELECT tc.cli_cliente FROM telefones_cliente, clientes c2, telefones t WHERE c2.cli_cliente=tc.cli_cliente AND tc.tel_telefone=t.tel_telefone LIMIT 1)
我得到的东西:
cli_cliente cli_razao_social tel_telefone
50 EXACTA ENGENHARIA E ADMINISTRAÇAO LTDA 385
50 EXACTA ENGENHARIA E ADMINISTRAÇAO LTDA 386
50 EXACTA ENGENHARIA E ADMINISTRAÇAO LTDA 387
我需要什么:
cli_cliente cli_razao_social tel_telefone
49 WOOD FORM LTDA 384
50 EXACTA ENGENHARIA E ADMINISTRAÇAO LTDA 387
答案 0 :(得分:0)
您可以使用group by,例如:
select clientes.cli_clients, nome , tel_telefone, tel_contato from clientes
inner join telefones_cliente on (clientes.cli_clientes =telefones_cliente.cli_cliente)
inner join telefones on (telefones_cliente.tel_telefone =telefones.tel_telefone)
group by clientes.cli_clients
每个客户仅返回一条记录
答案 1 :(得分:0)
使用“ top 1”仅获得第一次出现
尝试使用此SQL提琴http://sqlfiddle.com/#!15/a0b4c/3
这是我使用的查询。给出预期的结果
select A.clientid,B.telephone,C.Name
from Client A inner join ClientTelephone B on A.clientid = B.clientid
inner join Telephone C on B.telephone = C.Telephone
limit 1