mysql - 为什么 select join 与 enry table 时类别名称为空

标签 mysql sql

我有两个表...第一个是条目

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');

第二个是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;

为什么以及我应该做什么来查看类别名称

最佳答案

join 有错误的子句

您需要加入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;

关于mysql - 为什么 select join 与 enry table 时类别名称为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16841085/

相关文章:

sql - 系统表master..spt_values的用途是什么?其值的含义是什么?

MySQL 查询结果返回意外数据

php - mysql 查询来搜索地址或邮政编码

如果表中存在许可 key ,则 MySQL 代码将用户名和密码插入表中

php - 使用 MySQL 进行 Laravel 5 服务 API 查询

mysql - 替换 phpMyAdmin 中的 INTERSECT

java - 使用 Transformer 将实体映射到 DTO 时获取实体内的集合

php - 数据库未获取输入

php - 在数据库中创建一个表

mysql - 房价返回正确结果和错误结果