Sto provando a selezionare le righe con un determinato nome di colonna e ordinarle in base a un altro nome di colonna.MySQL Seleziona, colonna con lo stesso nome da più tabelle, ordina per un'altra colonna con lo stesso nome
Ecco il mio problema, in N tabelle semplificate:
table 1: id, username, datetime, comment
table 2: id, username, datetime, vote
.
.
.
table N: id, username, datetime, bought
Voglio essere in grado di selezionare tutte le righe in cui username='Some Name'
, ordinate per datetime - in tutti i tavoli N.
-
Per inciso, qualcuno sa di un buon libro o di risorse per l'apprendimento e la pratica di SQL avanzate? (Ho provato SQLZoo, ma non hanno abbastanza esempi di anticipo .. e poi ci sono quelli troppo avanzati su cui sono ancora sconcertato)
anche le altre due persone suggeriscono alias come possibilità (anche se non sono sicuro di come stiano ordinando * tutto * per datetime ... se entrambi sono possibili, alias vs union è migliore in termini di risorse? – ina
Se sei cercando di ordinare su più tavoli che non hanno relazioni dirette, le UNION sono la strada da percorrere - detto questo, non è particolarmente buono per le risorse dato che stai facendo un sacco di sottoquery e di solito è un segno che devi cambiare il tuo schema del database. Si noti inoltre che se si desidera eseguire un'operazione come ottenere i 5 record più recenti, sarà necessario impostare un LIMIT 5 in OGNI delle sottoquery e quindi limitare anche la query esterna. – AvatarKava
ok, la soluzione potrebbe essere solo creare una tabella dump_transactions che concateni tutto – ina