2013-05-30 18 views
0

我有兩個表...首先是進入爲什麼類別名稱爲空時,選擇與enry表連接

CREATE TABLE IF NOT EXISTS `entry` (
    `entry_id` int(11) NOT NULL AUTO_INCREMENT, 
    `entry_cat_id` int(11) NOT NULL, 
    `entry_name` varchar(255) NOT NULL, 
    `entry_body` text NOT NULL, 
    `img_url` varchar(255) NOT NULL, 
    `image_link` varchar(255) NOT NULL, 
    `entry_state` tinyint(1) DEFAULT '0', 
    `comment_count` int(11) NOT NULL DEFAULT '0', 
    `entry_count` int(11) NOT NULL DEFAULT '0', 
    `entry_created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 
    PRIMARY KEY (`entry_id`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=41 ; 

-- 
-- Dumping data for table `entry` 
-- 

INSERT INTO `entry` (`entry_id`, `entry_cat_id`, `entry_name`, `entry_body`, `img_url`, `image_link`, `entry_state`, `comment_count`, `entry_count`, `entry_created`) VALUES 
(27, 15, 'title fot entry', 'content', '', '', 0, 0, 0, '2013-04-14 14:47:56'); 

和escond是entry_category

CREATE TABLE IF NOT EXISTS `entry_category` (
    `category_id` int(11) NOT NULL AUTO_INCREMENT, 
    `category_name` varchar(150) NOT NULL, 
    `slug` varchar(150) NOT NULL, 
    `cat_created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 
    PRIMARY KEY (`category_id`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=16 ; 

-- 
-- Dumping data for table `entry_category` 
-- 

INSERT INTO `entry_category` (`category_id`, `category_name`, `slug`, `cat_created`) VALUES 
(10, 'rrrrrrrr', 'rrrrrrr', '0000-00-00 00:00:00'), 
(15, 'gggggg', 'ttttttttt', '2012-12-10 13:47:28'); 

當內選擇加入得到類別和條目名稱我看到category_name爲空

SELECT entry.entry_id, entry_category.category_name, entry.entry_name 
FROM entry 
INNER JOIN entry_category 
ON entry.entry_id=entry_category.category_id; 

爲什麼我該做什麼才能看到分類y name

回答

1

聯接是有錯誤的條款

你需要加入對CATEGORY_ID但在登記表CATEGORY_ID是entry_cat_id場這樣你就可以加入這個

SELECT entry.entry_id, entry_category.category_name, entry.entry_name 
    FROM entry 
    INNER JOIN entry_category 
    ON entry.entry_cat_id=entry_category.category_id; 
+0

哦感謝喜歡我寫的是錯誤的 – user1080247

1

我想你是加入了錯誤的領域。當您認爲您想加入entry.entry_cat_id字段時,您將加入entry.entry_id字段。

試着改變你的查詢:

SELECT entry.entry_id, entry_category.category_name, entry.entry_name 
FROM entry 
    INNER JOIN entry_category 
     ON entry.entry_cat_id=entry_category.category_id; 

順便說一句 - 您現有的查詢不應該從你的樣本數據返回任何結果。要查看您的entry_category表中的記錄,請使用OUTER JOIN

相關問題