2015-05-27 36 views
0

嗨,我試圖從我的數據庫中拉出某個博客文章作者的用戶的first_name,但有一點問題。我真的很困惑如何將兩張桌子連接在一起,並且無法真正找到簡單的解釋。這裏是我的兩個表格:SQL查詢找到特定博客文章的作者?

CREATE TABLE IF NOT EXISTS `goldhub_user` (
    `user_id` int(11) NOT NULL AUTO_INCREMENT, 
    `email` varchar(20) NOT NULL, 
    `username` varchar(50) NOT NULL, 
    `password` char(40) NOT NULL, 
    `first_name` varchar(20) NOT NULL, 
    `last_name` varchar(20) NOT NULL, 
    PRIMARY KEY (`user_id`), 
    UNIQUE KEY `goldhub_email` (`email`) 
) 

CREATE TABLE IF NOT EXISTS `goldhub_post` (
    `post_id` int(11) NOT NULL AUTO_INCREMENT, 
    `user_id` int(11) DEFAULT NULL, 
    `category_id` int(11) DEFAULT NULL, 
    `post_content` varchar(255) DEFAULT NULL, 
    `post_date` timestamp NULL DEFAULT NULL, 
    PRIMARY KEY (`post_id`), 
    KEY `user_id` (`user_id`), 
    KEY `category_id` (`category_id`) 
) 

任何指導將不勝感激。

回答

1
SELECT goldhub_user.first_name FROM goldhub_post 
INNER JOIN goldhub_user ON goldhub_user.user_id = goldhub_post.user_id 
WHERE goldhub_post.post_id = ? 

用帖子的ID替換?

+0

你能不能也用左連接在這種情況下獲得的作者?謝謝 – Conor

+0

@Conor如果你使用'LEFT JOIN',那麼沒有綁定到他們的user_id的帖子也會出現,這意味着查詢將爲這些帖子返回'null'。 –

0

嘗試這樣的事情,它會幫助我,如果你發佈的條件基礎上後

SELECT gu.first_name FROM goldhub_user gu 
LEFT JOIN goldhub_post gp 
    ON gu.user_id = gp.user_id 
WHERE gp.post_id = ? 
AND gp.category_id = ?;