Alias-Namen einer Spalte auf einen left join
Sagen wir, ich habe zwei Tabellen, und sowohl Ihre primären Bezeichner den Namen 'id'. Wenn ich möchten, führen Sie einen join mit den beiden Tabellen, wie würde ich alias die id
von der Tabelle, die ich verbinden möchte mit dem ehemaligen Tabelle?
Beispiel:
SELECT * FROM `sites_indexed` LEFT JOIN `individual_data` ON `sites_indexed`.`id` = `individual_data`.`site_id` WHERE `url` LIKE :url
Nun, site_id soll die Verknüpfung mit sites_indexed.id
. Die tatsächliche id
repräsentiert die Zeile für individual_data
allerdings hat die gleichen Titel als sites_indexed
.
Persönlich, ich mag nur den Namen id
für alles, es hält die Dinge im Einklang. Wenn scripting server-Seite jedoch, kann es machen Sie die Dinge verwirrend.
z.B.
$var = $result['id'];
Angesichts der oben genannten Abfrage, würde dies nicht zu verwechseln die Dolmetscher?
Sowieso, wie wird diese erreicht?
InformationsquelleAutor zeboidlund | 2012-08-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht auswählen, sondern alle Felder, die mit "SELECT *" sollte man explizit benennen Sie jedes Feld, das Sie brauchen, aliasing mit ALS als erforderlich. Zum Beispiel:
Dann können Sie auf die alias-Namen in der Ergebnismenge.
InformationsquelleAutor Paul McNett
Dieser thread ist alt und ich fand, da hatte ich das gleiche problem. Jetzt habe ich eine bessere Lösung.
Die Antwort von Paul McNett antun und zwingt Sie, um eine Liste aller Felder, aber in einigen Fällen dies nicht möglich ist (zu viel-Felder-Liste), so können Sie halten Sie die * - und alias-nur die Felder, die Sie möchten (in der Regel die Felder, die den gleichen Namen und überschreibt jedes andere).
Hier ist, wie :
können Sie so viel Aliase, wie Sie wollen durch das hinzufügen von comas.
InformationsquelleAutor john
Das problem ist, dass Sie mit der " * " Platzhalter. Wenn Sie explizit Liste der Spaltennamen in der Abfrage, die Sie Ihnen geben können-Aliase:
Dann können Sie auf diese über den alias:
$var = $result['sites_indexed_id'];
$var_b = $result['individual_data_id'];
InformationsquelleAutor antun
Mit diesem Ausdruck erhalten Sie Ergebnisse mit Spalten id (aus Tabelle sites_indexed) und id2 (alias für eine Spalte id aus der Tabelle individual_data)
InformationsquelleAutor Yuri Korolov