기술자를위한 간단한 출석 시스템이 있습니다. 참석 일수는 tech_logins 테이블에 저장됩니다. 그것은 날짜 당 기술자 당 1 개의 기록을 가지고 있습니다. 기술자가 수행하는 작업은 logs라는 테이블에 저장됩니다. 이 테이블에는 기술자가 완료 한 모든 작업이 들어 있습니다. 또한 tech_logins 테이블과 관련된 두 개의 필드가 있습니다. 이들은 technician_id 및 dos라고합니다.MySql select 쿼리 조인이 예상 답변을 제공하지 않음
로그 테이블에는 기술자에게 링크 된 작업이 포함될 수 있지만 작업자가 기술자를 위해 일을 시작한 경우 (즉, 기술자가 없을 때 날짜 (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 문을 게시하십시오. –
데이터 샘플과 결과 세트로 기대할 수있는 것이 도움이 될 것입니다. –