2011-07-17 9 views
-2

基本的には;私はクライアントコントロールパネルのアナウンスメントページにいます。そのアナウンスメントを行った人のファーストネームを表示する必要があります。私は彼らの連絡先IDを持っています。次のようにこのクエリの設計についてはどうすればよいですか?

$res = mysql_query("SELECT * FROM announcements ORDER BY id DESC LIMIT 3;") or log_e(); 
/* Returns: 
    Array { 
    ['id'] = 1 
    ['poster_id'] = 1 
    ['when'] = CURRENT_TIMESTAMP 
    ['title'] = "Example Announcement" 
    ['message'] = "..." 
    } 
*/ 

UML設計書からの抜粋です: UML Design Document

I「ユーザー」の「ID」に関し、「ポスター」、...「main_contact」からを持っています「ユーザー」は連絡先の「ID」に関連しています。したがって、私はjoin users on users.id = posterと... join contacts on contacts.id = users.main_contactが必要であることを知っていますか?しかし、全体のクエリはどのように見えるでしょうか?

ありがとう、最初の答え。私はあなたの例をとり、それを私がしなければならないことをする質問に形作ることができました。およそ

SELECT announcements.*, contacts.name_first FROM announcements 
    LEFT JOIN users on users.id = announcements.poster 
    LEFT JOIN contacts on contacts.id = users.main_contact 
ORDER BY announcements.id DESC LIMIT 3; 
+0

ダウン票Qとは何である - 私はそれを得ることはありませんか? – mikey

+0

私は投票しませんでしたが、私はそれが "あなたは私の宿題をしますか"のように思っています。 –

答えて

1

SELECT a.*, c.[name_first] 
FROM announcements a 
    LEFT JOIN users b on a.id = b.poster 
    LEFT JOIN contacts c on c.id = b.main_contact 
ORDER BY a.id DESC LIMIT 3; 
関連する問題