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

2 příspěvky

Archiv diskusního fóra

Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.

  1. 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 :)
  2. 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

← Zpět na všechna témata