Codeigniter active record left-join-Problem
Ich habe zwei Tabellen 'accounts_transactions' und 'accounts_bills_transactions'.
Ich habe auf der linken verbinden Sie diese mit zwei aktiven Datensatz von codeigniter.Aber die Namen der Schlüsselspalten verwendet, um beizutreten sind unterschiedlich.Also ich bin nicht immer der Schlüssel-Spalte aus der linken Tabelle in die Ausgabe .Welche Abfragen soll ich schreiben Holen Sie sich die key-Spalte der linken Tabelle auch im Ergebnis enthalten.
Mein code ist
$this->db->select('*');
$this->db->from('accounts_transactions');
$this->db->join('accounts_bills_transactions', 'accounts_transactions.id = accounts_bills_transactions.transaction_id','left');
$query = $this->db->get();
So, als sehen Sie den Schlüsselspalten verwendet, um hier mitmachen sind , die id aus der linken Tabelle und transaction_id aus der zweiten Tabelle.Das problem ist, dass ich nicht immer die id aus der linken Tabelle auch im Ergebnis.Aber ich bin immer alle anderen Spalten.Ich nehme an, das problem ist, weil der Unterschied in der Spalte Namen, die verwendet werden, um beizutreten.dh sowohl die Spaltennamen sind nicht mit dem Namen 'id' .Also, wie bekomme ich die id aus der linken Tabelle im Ergebnis enthalten.
ja, das war ein Tippfehler die Abfrage, die ich brauchen, ist accounts_transactions.id = accounts_bills_transactions.transaction_id und es wird die Erzeugung ambigouus Spalte Fehler
InformationsquelleAutor Jinu Joseph Daniel | 2013-11-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie alias Sie:
Den zwei IDs wird nun als
a_id
undab_id
(oder was auch immer alias, den Sie wählen)Hinweis: ich bin mir nicht sicher, ob man einen alias im AR, ohne die Vermeidung der Flucht (noch nicht mit CI für eine Weile). Sollten Sie keine Fehler bekommen aus diesem Grund, nur pass
false
als zweiten parameter$this->db->select()
:Sie könnten versuchen, mit einer Liste aller Spalten in der select. Sind Sie sicher, auch, dass Ihre Abfrage in Ordnung ist? Ich meine, vielleicht haben Sie nicht wollen eine LEFT join...
Ich streng Notwendigkeit left join 🙂
InformationsquelleAutor Damien Pirsy
können Sie versuchen, diese, wenn Sie verwirren mit $this->wo oder $this->join
InformationsquelleAutor Denmark
Problem ist so einfach. Sie können diese Abfrage verwenden
Wenn dieselbe Spalte verwendet in an es wählt nur eine. Sie müssen alise zu der anderen Spalte in der zweiten Tabelle. Die beste Praxis ist es, eine Struktur zu verwenden, wie dies
InformationsquelleAutor Muhammad Raheel