2

私はusersというテーブルを持っています。

「ユーザー」の構造は次のとおりです。

ID          int(11)
Name        varchar(50)
CreatedBy   int(11)

任意の行の「CreatedBy」フィールドには、その行を作成したユーザー(user)のIDが含まれていることに注意してください。

次に、作成者の名前とともにすべてのユーザーのリストを表示する必要があります。整数である「CreatedBy」フィールドではありません。

たとえば、usersテーブルにこれらの行がある場合:

ID          Name          CreatedBy

1           Nina              1
2           John Doe          1
3           Samir Nasri       2

次に、それらを次のように表示する必要があります。

Name             CreatedBy

Nina              Nina
John Doe          Nina
Samir Nasri       John Doe

Codeigniterで、または生のmysqlクエリを使用してこれを行うにはどうすればよいですか?

前もって感謝します

4

2 に答える 2

1

テーブルを相互に結合できることを確認してください。その場合、次のように動作するはずです。

select u.name, c.name from users u left join users c on (u.id=c.createdby)
于 2013-03-16T20:13:01.997 に答える
1

データベース内のアクティブ レコードのドキュメントを参照してください。SQL クエリを記述する必要はありません。

http://ellislab.com/codeigniter/user-guide/database/active_record.html

$this->db->join('users u', 'u.id=c.createdby', 'left');
$query = $this->db->get('users c');
于 2013-03-16T20:20:16.007 に答える