Unir três tabelas SQL

Boa Tarde. Sou novo no forum e estou com uma grande duvida.

No cliente que trabalho estou precisando unir tres tabelas em uma unica saida.

Seriam elas:
tbcolab – Colunas: IDPESSOA, IDCOLAB, CODIMATR
tbpessoa – Colunas: IDPESSOA, NOMEPES
tbhistocrach – Colunas: IDCOLAB, ICARD

Na tabela TBHISTOCRACH podem ter varios registros. Com isso eu preciso pegar com a coluna DATAINI mais atual.

Se alguem poder me ajudar ficarei muito grato.

Agradeço desde já!

pesquise por winner join voce consegue fazer isto com sql

Creio que ficaria assim:

join da tabela TBPESSOA(IDPESSOA) com a tabela TBCOLAB(IDPESSOA)
join da tabela TBCOLAB(IDCOLAB) com a tabela TBHISTOCRATH(IDCOLAD)
buscando também pelo MAX(DATAINI)

SELECT * FROM tab1
INNER JOIN tab2 ON (tab1.campo = tab2.campo)
INNER JOIN tab3 ON (tab3.campo = tab2.campo)
WHERE tab1.campo = ‘valor’

Pessoal,

Obrigado pela ajuda ! Conforme voces falaram eu consegui fazer funcionar.

Mas sempre tem um ''Porem" e é nele que fiquei de mãos atadas.

Me deparei com o seguinte problema:

Na tabela TBHISTOCRACH tem os campos DATAINI/HORAINI e DATAFINA/HORAFINA. Na tabela que preciso pegar os acessos de cada pessoa (TBMARCACESS) tem os campos DATAACES/HORAACES.
Com base na data e hora do acesso, preciso que o resultado seja um valor entre a TBHISTOCRACH.DATAINI/HORAINI e TBHISTOCRACH.DATAFINA/HORAFINA.

Acredito que este seja um grande problema. Não tenho nem ideia se isso realmente é possivel.

Agradeço a ajuda de todos.

Abraços!

Pessoa,

Com muita luta eu consegui fazer funcionar. Para quem precisar um dia:

SELECT * FROM tbpessoa
INNER JOIN tbcolab ON (tbpessoa.idpessoa = tbcolab.idpessoa)
INNER JOIN tbhistocrach ON (tbhistocrach.idcolab = tbcolab.idcolab)
inner join tbmarcaacess on (tbhistocrach.icard = tbmarcaacess.icard and tbhistocrach.datainic > tbmarcaacess.dataaces and tbhistocrach.datafina < tbmarcaacess.dataaces)
where tbhistocrach.stathist = 1
order by dataaces desc

O que que eu fiz. Eu peguei o valor da data de marcação e falei que ele teria que ser entre o valor de data inicio e data fim.

pra fazer com intervalo de datas voce pode fazer assim

FROM tabela WHERE DataInicial BETWEEN ‘" + data1 + "’ AND ‘" + data2 + "’"