0

2 つのテーブル USER と MESSAGE があるとします。

USER -  id,name
MESSAGES - id,message_from,message_to,message_message

だから参加するために私はこのcoを使います

SELECT m.*,u1.*,u2.* FROM MESSAGES m
    INNER JOIN USER as u1
       ON(m.message_from = u1.id)  
    INNER JOIN USER as u2
       ON(m.message_to = u2.id)

したがって、結果を codeigniter で print_r すると、ユーザー message_to のユーザー データがありません。

そして、両方のユーザーのデータを返す場合でも、区別するためにいくつかのプレフィックスが必要だと思います

では、どうすればいいですか?

感謝と敬意

4

2 に答える 2

1

SELECT*構文の使用は避けるのが最善です。

戻したい列を指定し、名前が一意でない列にエイリアスを指定することをお勧めします。

SELECT m.id AS MessageId,m.message_from,m.message_to,m.message_message,
    u1.id AS FromId, u1.name AS FromName,
    u2.id AS ToId,u2.name AS ToName FROM MESSAGES m
INNER JOIN USER as u1 ON(m.message_from = u1.id)  
INNER JOIN USER as u2 ON(m.message_to = u2.id)
于 2013-01-18T09:56:45.367 に答える
1

エイリアスを使用:

SELECT m.id,
    u1.id as u1id,
    u1.name as u1name,
    u2.id as u2id,
    u2.name as u2name
FROM MESSAGES m
INNER JOIN USER as u1
    ON(m.message_from = u1.id)  
INNER JOIN USER as u2
    ON(m.message_to = u2.id)
于 2013-01-18T09:55:54.580 に答える