我为技术人员提供了一个简单的考勤系统。参加的天数存储在名为tech_logins的表中。每个技术员每个日期有1条记录。技术人员执行的工作存储在一个称为日志的表格中。该表包含技术人员完成的所有工作。它还有两个与tech_logins表相关的字段。他们被称为technician_id和dos。MySql select query join not given expected answer
日志表可以包含链接到技术人员的作业,但是dos没有链接,即当有人为技术人员输入作业时,但在技术人员不在时出现在日期(dos)上。
我正在尝试获取所有作业,每个技术人员仅为与tech_logins表中的login_date链接的dos日期。此sql仅返回单个技术人员和单一日期的记录:
SELECT tech_logins.tech_id,
tech_logins.login_date
FROM tech_logins
INNER JOIN `logs`
ON tech_logins.login_date = `logs`.dos
AND tech_logins.tech_id = `logs`.technician_id
任何帮助或指导将不胜感激。
表结构:
CREATE TABLE `tech_logins` (
`ID` int(10) unsigned NOT NULL AUTO_INCREMENT,
`tech_id` int(10) DEFAULT NULL,
`login_date` date DEFAULT NULL,
PRIMARY KEY (`ID`),
UNIQUE KEY `tech_id` (`tech_id`,`login_date`)
) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=latin1;
CREATE TABLE `logs` (
`ID` int(10) unsigned NOT NULL AUTO_INCREMENT,
`completed` date DEFAULT NULL,
`patient_first_name` varchar(20) NOT NULL,
`patient_last_name` varchar(20) NOT NULL,
`dob` date DEFAULT NULL,
`sex` varchar(1) DEFAULT NULL,
`dos` date DEFAULT NULL,
`study_id` int(10) DEFAULT NULL,
`ICD9` varchar(10) DEFAULT NULL,
`ref_doctor_id` int(10) DEFAULT NULL,
`insurance_id` int(10) DEFAULT NULL,
`insurance_no` varchar(20) DEFAULT NULL,
`authorization_no` varchar(20) DEFAULT NULL,
`referral_no` varchar(20) DEFAULT NULL,
`location_id` int(10) DEFAULT NULL,
`reading_doctor_id` int(10) DEFAULT NULL,
`technician_id` int(10) NOT NULL,
`biller` int(10) DEFAULT NULL,
`billed` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`ID`)
) ENGINE=MyISAM AUTO_INCREMENT=79 DEFAULT CHARSET=latin1;
您的描述有点难以遵循。请发布您的“CREATE TABLE”语句以获取相关表格。 – 2013-03-08 01:42:54
数据样本以及您期望返回结果集的内容会很有帮助。 – 2013-03-08 01:47:13