Spojení dvou tabulek se stejnými názvy sloupců

Ahoj,
slyšel jsem, že tady jsou ještě chytřejší lidi než na intervalu, tak se na Vás obracim :
potřebuju spojit tyhle tabulky
gb
| id | id_uzivatele | nick | mail | web | icq | zprava | datum |

users
| id | jmeno | prijmeni | nick | mai | web | icq | dnarozeni | telefon | heslo|

Takhle jsem si navrhnul tabulky pro knihu hostů(gb) do které můžou psát registrovaní(tabulka users) i neregistrovaní. Když je uživatel registrovaný tak se do tabulky gb při vložení příspěvku uloží jen jeho id z tabulky users.U neregisrovanýho se uloží všechny informace co zadal(nick,email,icq..) Vůbec nevim, jak tyto tabulky mám spojit. Potřebuju nahradit řádky z tabulky gb, kde je jen id od registrovanýho uživatele a zbytek řádků nechat. Problém je v tom, že se některé sloupce v obou tabulkách jmenujou stejně. Tabulek pomocí JOIN jsem spojil už spoustu, ale s tímhle si nevim rady.
SELECT * FROM gb LEFT JOIN users ON gb.id_uzivatele = users.id vynechá dta nick, icq,mail z tabulky gb.

Tady je to udělaný "graficky" http://www.resslovaci.net/test/db.htm :)
Napadlo mě vylistovat si všechny potřebné sloupečky a podle toho jestli je id_uzivatele null tak použít ty z gb, když ne, tak z users (v php).
nebo lépe:
Experimentálně jsem zkusil, že funguje CASE, tak zkus tohle:

Select
case users.id
when null then gb.nick
else users.nick
end as nick
from gb left join users gb.id_uzivatele = users.id

pro výběr nicku buď z gb nebo z users. Zbytek ekvivalentně. Mělo by to takhle chodit. Ještě to zkonzultuj s http://dev.mysql.com/doc/mysql/en/case-statement.html