MySQL: Left join und der Spalte mit dem gleichen Namen in verschiedenen Tabellen?
SELECT * FROM `product` left join category on product.category_id = category.id
Diese Abfrage funktioniert einwandfrei. Aber das problem ist, sowohl die Produkt-Tabelle und die Kategorie der Tabelle Felder mit den Namen "name" und "id". Also, wenn ich fetch das Ergebnis dieser Abfrage ist, es gibt mir nur einen Namen und eine id, aber ich will beide id ' s und Namen.
Wie kann ich dies tun, ohne die Felder umbenennen?
Ist es möglich, zurück mit benutzerdefinierten Namen wie product_name und category_name?
InformationsquelleAutor user1091856 | 2012-05-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie Aliase hinzufügen, um die Felder:
InformationsquelleAutor Pastor Bones
verwenden Sie die "AS" - keyword, wie
InformationsquelleAutor jimpic
Aliase verwenden, die mit der
AS
Stichwort:InformationsquelleAutor adrien
Dies funktioniert nicht in PHP. Wenn ich das abrufen der Zeilen (mysql_fetch_assoc), es kommt nur EIN name und EINE id
Sorry ja, würden Sie brauchen, um den Zugriff über fetch_row wenn Sie verlassen den * Wert. Sonst wäre es mit alias für jedes doppelten Feldes, wie erwähnt in anderen Beiträgen.
Sie können auch verwenden, mysql_fetch_array(), aber in diesem Fall müssen Sie Zugriff auf Daten mit Indizes anstelle von Verbänden (oder Schlüssel).
InformationsquelleAutor gunnx
versuchen Sie dies:
InformationsquelleAutor John Woo
Ich hatte ein ähnliches problem, die Arbeit mit MySQL in einem Node.js Projekt.
Fand ich, dass, wenn Sie weiterhin verwenden möchten
select *
anstelle der Liste alle Spalten und die Verwendung eines alias, die folgenden Werke:In anderen Worten, erstellen Sie Aliase für den verknüpften Spalten mit in Konflikt stehenden Namen. Sie nicht brauchen, Aliase, die auf anderen Spalten oder Tabellennamen.
InformationsquelleAutor JSideris