Ich benutze Codeigniter Active Records Klasse und ich möchte meine users
Tabelle mit meiner clients
Tabelle, so dass ich die "echten" Namen der Benutzer und nicht nur ihre ID anzeigen können. HierCodeguit Join mit mehreren Bedingungen
ist, was die clients
Tabelle wie (Beispiel) sieht und die Spalten a_1, a_2 und a_3 entsprechen meiner users
Tisch, insbesondere die user id
:
clients
|--------|---------|----------|-----------|----------|
| id | name | a_1 | a_2 | a_3 |
|--------|---------|----------|-----------|----------|
| 1 | Paul | 2 | 4 | 1 |
Und meine users
Tabelle sieht wie folgt aus:
users
|--------|---------|----------|
| id | first | last |
|--------|---------|----------|
| 1 | Paul | Blake |
|--------|---------|----------|
| 2 | Dan | Doe |
|--------|---------|----------|
| 3 | Steve | Smith |
|--------|---------|----------|
| 4 | Harry | Jones |
|--------|---------|----------|
Also, im wesentlichen, wenn ich von den clients
Tabellenwählsignal war und JOIN es, würde es so aussehen:
clients
|--------|---------|----------|-----------|----------|
| id | name | a_1 | a_2 | a_3 |
|--------|---------|----------|-----------|----------|
| 1 | Paul | Dane Doe |Harry Jones|Paul Blake|
Bisher habe ich versucht (was nicht funktioniert hat, zeigt es nur den gleichen Namen für alle):
<?
$this->db
->select('name, a_1, a_2, a_3')
->from('clients')
->join('users', 'users.id=a_1 OR users.id=a_2 OR users.id=a_3');
Jede Hilfe wäre toll!
Lösung:
Hier ist, was ich in der Lage war, mit dem kommen Werke (dank Lee @elavarasan):
<?
$this->db
->select('CONCAT(u1.first," ", u1.last) as a_1_name, CONCAT(u2.first," ", u2.last) as a_2_name, CONCAT(u3.first," ",u3.last) as a_3_name', FALSE)
->from('clients')
->join('users AS u1', 'u1.id=a_1', 'left')
->join('users AS u2', 'u2.id=a_2', 'left')
->join('users AS u3', 'u3.id=a_3', 'left');
Hier in meinem Land die Zeit fast 03.00 n Ich fühle mich schon tot schläfrig. Dats ein weiterer lahmer Grund dafür, die Abfrage nicht in den Active record zu konvertieren ...: P –
Danke! Das hat geholfen. Ich habe es mit Active Records funktionieren, siehe meine Bearbeitung oben. – Dodinas