如何从MySQL中的三个表中加入三个字段?

时间:2014-12-16 03:45:31

标签: mysql join syntax

我有三个不同表格的三个字段,我想加入。

公司来自公司, title FROM jobs, 描述FROM jobcategory

我想将这三个字段连接在一起并按顺序列在prvious字段的右侧,如下所示:

公司|标题|描述

这是我能提供的关于数据库密钥的最佳信息......

CREATE TABLE `company` (
  `companyID` int(11) NOT NULL AUTO_INCREMENT,
  `company` varchar(255) NOT NULL,
  PRIMARY KEY (`companyID`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=117 ;


CREATE TABLE `jobcategory` (
  `JobCategoryID` int(11) NOT NULL AUTO_INCREMENT,
  `CategoryName` text,
  `Description` text,
  PRIMARY KEY (`JobCategoryID`),
  UNIQUE KEY `unique_JobCategoryID` (`JobCategoryID`),
  KEY `index_JobCategoryID` (`JobCategoryID`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ;

CREATE TABLE `jobs` (
  `title` varchar(255) NOT NULL,
  `company` varchar(255) NOT NULL,
  `date` date NOT NULL,
  `companyID` int(11) NOT NULL,
  `jobCategoryID` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

我尝试运行下面评论的查询,但收到了以下错误。

  

"错误1054(42S22):未知栏' Company.ID'在" on条款'

执行此查询的正确语法是什么?

1 个答案:

答案 0 :(得分:2)

取决于您的密钥的设置方式,但假设JOBS具有引用COMPANY和JOBCATEGORY表的外键:

SELECT COMPANY.COMPANY, JOBS.TITLE, JOBCATEGORY.DESCRIPTION<br>
FROM COMPANY 
INNER JOIN JOBS ON COMPANY.ID=JOBS.COMPANY_ID
INNER JOIN JOBCATEGORY ON JOBCATEGORY.ID=JOBS.JOBCATEGORY_ID