0

別のテーブルにリンクする2つ(またはそれ以上)の列を持つテーブルがあるとします。

 house_history         houses
---------------       --------
OwnerID               HouseID
PreviousHouseID       Address
CurrentHouseID

そして、これらの各IDからデータを返したいと考えています。

---------------------------------------------------------------
|OwnerID|        PreviousAddress    |      CurrentAddress     |
---------------------------------------------------------------
         (linked to PreviousHouseID) (linked to CurrentHouseID)

どうやってそれをやりますか?(特にMySQLの使用に興味があります)

4

3 に答える 3

1
SELECT OwnerId, p.Address as PreviousAddress, c.Address as CurrentAddress
FROM house_history h
LEFT JOIN houses p ON h.PreviousHouseID = p.HouseID
LEFT JOIN houses c ON h.CurrentHouseID = c.HouseID 
于 2012-05-15T20:11:25.243 に答える
1

これを試して

SELECT hh.OwnerID,h1.Address,h2.Address
FROM house_history hh 
LEFT JOIN house h1 ON h1.HouseId = hh.PreviousHouseID
LEFT JOIN house h2 ON h2.HouseId = hh.CurrentHouseID

おそらく、現在および前の家がnullの場合にも機能するため、INNERJOINの代わりにLEFTJOIN必要になる場合があります。

于 2012-05-15T20:11:32.720 に答える
0
SELECT
    house_history.OwnerID
    , houses_previous.Address AS PreviousAddress
    , houses_current.houses.Address AS CurrentAddress
FROM house_history
    LEFT JOIN houses AS houses_current ON (house_history.CurrentHouseID = houses_current.HouseID)
    LEFT JOIN houses AS houses_previous ON (house_history.PreviousHouseID = houses_previous.HouseID);
于 2012-05-15T20:14:22.220 に答える