Ho un vecchio tavolo in questo modo:Come aderire tabelle MySQL
user> id | name | address | comments
E ora ho per creare una tabella di "alias" per consentire ad alcuni utenti di avere un nome alias per alcuni motivi. Ho creato una nuova tabella 'user_alias' in questo modo:
user_alias> name | user
Ma ora ho un problema a causa del mio povero livello di SQL ... Come unire entrambe le tabelle per generare qualcosa di simile:
1 | my_name | my_address | my_comments
1 | my_alias | my_address | my_comments
2 | other_name | other_address | other_comments
voglio dire, voglio fare una query "SELECT ..." che ritorna nello stesso formato della tabella "utente" tutti gli utenti e tutte alias .. Qualcosa di simile a questo:
SELECT user.* FROM user LEFT JOIN user_alias ON `user`=`id`
ma doesn lavora per me ..
Perfetto! Questa è la soluzione. Non so se questo è il migliore, ma funziona! Solo un piccolo errore: SELEZIONA user.name, user.address, user.comment DA utente UNION ALL user_alias.alias SELECT user.address, user.comment DA utente INNER JOIN user_alias su user.id = user_alias. user ORDER BY nome – Ivan
Oh, vedo il tuo JOIN ora. Dovresti rinominare user_alias.user in user_alias.user_id per rendere più chiaro cosa sta succedendo. –