Egyszerű ( gondolom én ) MySQL kérdés

Sziasztok!

Gyakorolgatok egy-két dolgot, de az sql még nem igazán az erősségem. Az alábbi problémában kérném a segítségeteket:
Van két táblám, leegyszerűsítve kb így:

1. tábla:

| id | x_hash | y_hash |
------------------------
| 1 | aaa | bbb |
| 2 | bbb | ccc |
| 3 | aaa | ccc |

2. tábla

| id | hash | string |
----------------------
| 1 | aaa | str1 |
| 2 | bbb | str2 |
| 3 | ccc | str3 |
Arra lenne szükségem, hogy ha select-tel az első táblában lekérem az aaa-t akkor bbb-t adjon vissza, ha pedig a bbb-t akkor ccc-t. Tehát mindig a két oszlop közül azt, amelyikben épp nem a lekért string van. Ezeket a visszatérő értékeket pedig a második táblával joinolva össze kellene kapcsolni a hash-el és visszakapni aaa esetén az str1-et, bbb esetén az str2-t, stb.

Hogyan lehetséges ez?:)

Köszönöm a segítséget.

Hozzászólások

Erre gondolsz?

SELECT masodik.string
FROM elso LEFT JOIN masodik
ON (elso.y_hash=masodik.hash)

Lehet én vagyok a béna, de nekem ez nem azt adta vissza amire szükségem lenne.

Ez egy barát jelölős dolog akarna lenne, X bejelöli Y-t. A hash alapján ( ami egy egyedi azonosító ) a tábla egyből ki szeretném szedni az illető barátjainak az azonosítóját, ami alapján a tábla kettőből visszakaphatnám a barátok nevét. ( string )

Sztem. ez a megoldás, feltételezve,hogy minden hash egyedi. Kipróbáltam és működik nálam.

1. tábla = relations
2. tábla = users

SELECT users.string FROM `relations` INNER JOIN users ON relations.y_hash=users.hash WHERE relations.x_hash='aaa'

Eredmény:

str2
str3

Ha csak egy bizonyos rekord érdekel,akkor alakítsd a feltételt :)