Hoe resultaten voor een query worden geretourneerd met behulp van spil of iets dergelijks

Ik moet een selectie schrijven om het volgende te produceren:

   r_country | s_country |     s_name  |  r_name | msg    |   date
     ca        au            bill       bob      'hi'       2/12/2010

Dit zijn mijn gegevens:

tableA

EmployeeName   |  EmployeeID  | country
bill              1                au
bob               2                ca


tableB

Sender       |  Reciever  |  Msg | date
bill               bob       'hi'   12/12/2010

eerder probeerde ik een join te doen, maar ik denk dat dit alleen gegevens retourneert voor de gebruiker wiens naam ik doe

1

1 antwoord

Je moet twee keer meedoen.

SELECT
  receiver.country    AS r_country,
  sender.country      AS s_country,
  data.Sender         AS s_name,
  data.Receiver       AS r_name,
  data.msg            AS msg,
  data.date           AS date
FROM
  TableB              AS data
LEFT JOIN
  TableA              AS sender
    ON sender.EmployeeName = data.Sender
LEFT JOIN
  TableA              AS receiver
    ON receiver.EmployeeName = data.Receiver

Merk echter ook op dat uw tabellen met gegevens (feiten) de NAME niet bevatten. U zou de UniqueID van de entiteit moeten gebruiken, een veld dat onafhankelijk is van de attributen van de entiteit (zoals naam, adres, enz.)

3
toegevoegd