晚辈设计了一个表tmpTable,内容有:录入人,录入部门,最后编辑人,最后编辑部门等字段
其中:录入人字段内容是"录入人"数据表中相应人员的ID,录入部门字段内容是"部门"数据表中相应部门的ID
因为录入人,部门与最后编辑人,部门的的数据内容不一样,但具体内容都是放在上面提到的那两个表中
该怎么样做连接才可以同时显示出录入人,部门与最后编辑人,部门的实际内容呢??谢谢!
其中:录入人字段内容是"录入人"数据表中相应人员的ID,录入部门字段内容是"部门"数据表中相应部门的ID
因为录入人,部门与最后编辑人,部门的的数据内容不一样,但具体内容都是放在上面提到的那两个表中
该怎么样做连接才可以同时显示出录入人,部门与最后编辑人,部门的实际内容呢??谢谢!
解决方案 »
- 只有图像像素矩阵,怎么显示图像
- 关于QQ传送文件的数据包格式
- 基于vc++6.0的视频数据的接受与显示
- 动态创建GroupBox控件时,设置其风格为SS_BLACKFRAME, 运行后发现GroupBox覆盖了对话框上原有的Button,怎样处理?
- 请教有关托管c++代码和非托管c++代码的混合编程的问题。
- 关于服务器向客户机发送数据的问题!!!
- 有关CTreeCtrl的问题!
- 钩子钩子-----------------钩子!
- 如何与CSocket一起使用CSocketFile类和CArchive类?
- 类头文件的问题
- 各位vc大哥哥能否给个qq号或msn,希望在vc技术上交流交流,小妹我遇到很多bug,好烦啊
- 请问有没有一些好的播放MP3的类或LIB或DLL?
from tmpTable, 人员表 as 人员表1, 人员表 as 人员表2, 部门表 as 部门表1, 部门表 as 部门表2
where 人员表1.人员ID = tmpTable.录入人ID and 人员表2.人员ID = tmpTable.最后编辑人ID and tmpTable.录入部门ID = 部门表1.部门ID and tmpTable.最后编辑部们ID = 部门表2.部门ID
from tmpTable, 人员表 as 人员表1, 人员表 as 人员表2, 部门表 as 部门表1, 部门表 as 部门表2
where 人员表1.人员ID = tmpTable.录入人ID and 人员表2.人员ID = tmpTable.最后编辑人ID and tmpTable.录入部门ID = 部门表1.部门ID and tmpTable.最后编辑部们ID = 部门表2.部门IDTO steedhorse(晨星)
我是用INNER JOIN方式做连接视图
但只能做到显示录入人,录入部门 或者 最后编辑人,最后编辑部
下面是代码,请帮看看怎么改好吗?
SELECT dbo.company_dep.name AS depName, dbo.personnel.name AS humanName,
dbo.house_message.ID, dbo.house_message.msgSendTime,
dbo.house_message.msgSendName, dbo.house_message.msgSendDep,
dbo.house_message.msgReceiveName, dbo.house_message.handleIs,
dbo.house_message.memo, dbo.house_message.masReceiveDep
FROM dbo.house_message INNER JOIN
dbo.personnel ON
dbo.house_message.msgSendName = dbo.personnel.ID INNER JOIN
dbo.company_dep ON dbo.house_message.msgSendDep = dbo.company_dep.ID
dbo.house_message.msgSendDep 发送部门
dbo.house_message.msgReceiveName 接收人
dbo.house_message.masReceiveDep 接收部门
dbo.personnel 人员表
dbo.company_dep 部门表
ID 人员id
name 人员名称dbo.company_dep 部门表
ID 部门ID
name 部门名称dbo.house_message 消息表
ID 消息编号
msgSendTime 消息发送时间
msgSendName 消息发送人
msgSendDep 消息发送部门
msgReceiveName 消息接收人
msgReceiveDep 消息接收部门
house_message.memo 消息内容
(
ID INT,
name VARCHAR(100)
)
go
CREATE TABLE 部门表
(
ID INT,
name VARCHAR(100)
)
go
CREATE TABLE 消息表
(
ID INT,
msgSendName VARCHAR(100),
msgSendDep VARCHAR(100),
msgReceiveName VARCHAR(100),
msgReceiveDep VARCHAR(100),
memo VARCHAR(100)
)
goINSERT INTO 人员表
SELECT 1,'人员1'
UNION ALL SELECT 2,'人员2'INSERT INTO 部门表
SELECT 1,'部门1'
UNION ALL SELECT 2,'部门2'INSERT INTO 消息表
SELECT 1,'1','1','2','2','测试1'
UNION ALL SELECT 2,'2','2','1','1','测试2'
UNION ALL SELECT 3,'2','2','2','2','测试3'SELECT a.ID,a.memo,b.name as 消息发送人,d.name as 消息发送部门,c.name as 消息接收人,e.name as 消息接收部门 FROM 消息表 a
INNER JOIN 人员表 b ON a.msgSendName=b.ID
INNER JOIN 部门表 c ON a.msgReceiveName=c.ID
INNER JOIN 人员表 d ON a.msgSendDep=d.ID
INNER JOIN 部门表 e ON a.msgReceiveDep=e.IDDROP TABLE 人员表
DROP TABLE 部门表
DROP TABLE 消息表