使用内部联接查询

时间:2014-07-29 23:24:55

标签: sql postgresql inner-join

我试图将此查询传递给内部联接,但它不知道如何?

这是我想将InnerJoin与这些值一起使用的查询

SELECT 
  ticket.id_ticket, 
  ticket.id_rede, 
  historico.id_historico, 
  historico.id_ticket, 
  centro.id_centro, 
  eqpto.id_eqpto, 
  eqpto.nome, 
  centro.sigla_centro, 
  interface.id_interface, 
  interface.id_eqpto, 
  interface.desig, 
  tecnologia.descricao, 
  interface.id_tecnologia, 
  tecnologia.id_tecnologia, 
  eqpto.id_centro, 
  eqpto.id_rede
FROM 
  app_gpa_ticket.ticket, 
  app_gpa_ticket.historico, 
  dados_v3.centro, 
  dados_v3.eqpto, 
  dados_v3.interface, 
  dados_v3.tecnologia
WHERE 
  ticket.id_ticket = historico.id_ticket AND
  centro.id_centro = eqpto.id_centro AND
  eqpto.id_eqpto = interface.id_eqpto AND
  eqpto.id_rede = ticket.id_rede AND
  tecnologia.id_tecnologia = interface.id_tecnologia;

谢谢!

1 个答案:

答案 0 :(得分:1)

我认为您正在尝试使用标准(显式)语法。您需要做的是在JOIN子句中使用WHERE运算符,并将它们移动到表本身附近。您需要知道的是左侧的表格(在INNER JOIN运算符之前加入右侧(INNER JOIN运算符之后)

SELECT 
ticket.id_ticket, 
ticket.id_rede, 
historico.id_historico, 
historico.id_ticket, 
centro.id_centro, 
eqpto.id_eqpto, 
eqpto.nome, 
centro.sigla_centro, 
interface.id_interface, 
interface.id_eqpto, 
interface.desig, 
tecnologia.descricao, 
interface.id_tecnologia, 
tecnologia.id_tecnologia, 
eqpto.id_centro, 
eqpto.id_rede
FROM app_gpa_ticket.ticket 
INNER JOIN app_gpa_ticket.historico ON ticket.id_ticket = historico.id_ticket
INNER JOIN dados_v3.eqpto ON eqpto.id_rede = ticket.id_rede
INNER JOIN dados_v3.interface ON eqpto.id_eqpto = interface.id_eqpto
INNER JOIN dados_v3.centro ON centro.id_centro = eqpto.id_centro
INNER JOIN  dados_v3.tecnologia ON tecnologia.id_tecnologia = interface.id_tecnologia