2013-08-27 44 views
0

我遇到问题,编写一个非常简单的SQL查询,选择所有三个表中的所有列,并连接我创建的数据库中的三个表,并使用BETWEEN筛选使用出生日期筛选数据的记录选择。我做错了什么加入我的3张桌子?

这些都是我的表:

--This代码创建table--

CREATE TABLE [SHATTKudlerFineFoods].dbo.tblStores 
(
strStoreID varchar (4) CONSTRAINT PK_strStoreID PRIMARY KEY Not Null, 
strStoreName varchar (20) Not Null, 
strManagerName varchar (30) Not Null 
) 

- 这代码创建的职位Table--

CREATE TABLE [SHATTKudlerFineFoods].dbo.tblJobTitle 
(
jobJobID varchar (4) CONSTRAINT PK_jobJobID PRIMARY KEY Not Null, 
jobJobClass varchar (60) Not Null, 
jobTitle varchar (60) Not Null, 
jobDescription varchar (300) Not Null, 
jobStatus varchar (11) Not Null 
) 

的商店 - 此代码创建员工表 -

CREATE TABLE [SHATTKudlerFineFoods].dbo.tblEmployee 
(
empEmpID varchar (3) CONSTRAINT PK_empEmployeeID PRIMARY KEY Not Null, 
empLName varchar (20) Not Null, 
empFName varchar (15) Not Null, 
empAddress varchar (30) Not Null, 
empCity varchar (20) Not Null, 
empState varchar (2) Not Null, 
empZIPCode varchar (5) Not Null, 
empAreaCode varchar (3) Not Null, 
empPhoneNo varchar (8) Not Null, 
empGender varchar (1) Not Null, 
empDOB smalldatetime Not Null, 
empAge Tinyint Not Null, 
empHireDate smalldatetime Not Null, 
empNoOfExempt Tinyint Not Null, 
empMaritalStatus varchar (3) Not Null, 
empSalary money Not Null, 
empStoreID varchar (4) CONSTRAINT FK_strStoreID FOREIGN KEY REFERENCES 
tblStores(strStoreID) Not Null, 
empJobID varchar (4) CONSTRAINT FK_jobJobID FOREIGN KEY REFERENCES 
tblJobTitle(jobJobID) Not Null 
) 

这是我写的加入他们的查询:

USE [SHATTKudlerFineFoods] 
SELECT * 
FROM tblStores INNER JOIN tblEmployee 
ON tblStores.strStoreID = tblEmployee.empStoreID 
FULL OUTER JOIN tblStores 
ON tblStores.strStoreID = tblJobTitle.ordStoreID 
WHERE empDOB BETWEEN '1/1/1985' and '1/1/1999' 
+0

'tblJobTitle'不在'FROM'列表。 –

回答

2

嗯,你的表是错误的加入。这是一个错字吗?

SELECT * 
FROM tblStores INNER JOIN tblEmployee 
ON tblStores.strStoreID = tblEmployee.empStoreID 
FULL OUTER JOIN tblJobTitle 
ON tblEmployee.empJobId = tblJobTitle.jobJobId; 

第三应参考tblJobTitle而非tblStores,我认为,与连接它们的右列一起。

+0

不,它不是。我的材料很混乱,我很确定这是个问题,但如果有人能够向我解释这将是很好的。我的导师一整周都没有回复,我有点绝望。 –

+0

@LynetteShatto。 。 。最简单的建议是遵循表创建中的外键关系。这些经常告诉你如何加入表格。 –

+0

这似乎会导致进一步的错误。 –

2
SELECT * 
FROM tblStores INNER JOIN tblEmployee 
ON tblStores.strStoreID = tblEmployee.empStoreID 
FULL OUTER JOIN tblJobTitle 
ON tblEmployee.empJobID = tblJobTitle.jobJobID 
WHERE empDOB BETWEEN '1/1/1985' and '1/1/1999' 

这是我想象的,可能是有用的,第二个`ON`使用

+0

是的,我知道查询是不正确的,这就是为什么我需要帮助.. –

+0

我的答案也部分是一个问题,因为我不知道这是你想要的,这个查询适合您的需求? –

+0

我加入上面列出的所有表,是的,但我很困惑如何编写查询来这样做。 –