2011-07-17 34 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

我有「海報」,其中涉及「用戶」的「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;