2012-07-25 4 views
1

외래 키 값으로 MySQL 테이블을 만들었습니다. 외부 키 값을 가져 오기 위해 MySQL 조인을 사용하고 싶습니다. employee이라는 테이블과 외래 키 값 sex, 성별 테이블에 남성 & 여성이 포함되어 있습니다. 이 내 간단한 작동되는 쿼리를 조인 :mysql join, needion suggest

SELECT employee_id, first_name, last_name, sex_id FROM employee 

을 그리고 말하십시오 :

SELECT * FROM sex JOIN employee ON employee.sex_id=sex.id 

하지만 난 여기에 쿼리를 조인을 사용하기를 원하지만 내가 어떤 일을 놓친 것 같다,이 절차를 따르십시오 내가 MySQL을

좋은 아이디어를

CREATE TABLE IF NOT EXISTS `employee` (
    `employee_id` int(11) NOT NULL AUTO_INCREMENT, 
    `first_name` varchar(20) NOT NULL, 
    `middle_name` varchar(20) DEFAULT NULL, 
    `last_name` varchar(20) NOT NULL, 
    `employee_employee_id` int(11) DEFAULT NULL, 
    `address_id` int(11) DEFAULT NULL, 
    `phone_id` int(11) DEFAULT NULL, 
    `dob` date DEFAULT NULL, 
    `maritial_id` int(11) NOT NULL, 
    `sex_id` int(11) NOT NULL, 
    PRIMARY KEY (`employee_id`), 
    KEY `fk_employee_employee` (`employee_employee_id`), 
    KEY `fk_employee_address1` (`address_id`), 
    KEY `fk_employee_phone1` (`phone_id`), 
    KEY `fk_employee_maritial1` (`maritial_id`), 
    KEY `fk_employee_sex1` (`sex_id`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ; 

하지 않은 :이 테이블의 단일 쿼리에서 insert to forigen 키를 어떻게 나

답변

0
SELECT emp.employee_id, emp.first_name, emp.last_name, emp.sex_id, sx.sex_label 
FROM employee AS emp 
JOIN sex AS sx 
ON emp.sex_id = sx.id 

.

+0

잘 작동합니다. 'insert' 직원 테이블에 대해서도 도움이 필요합니다. –

+0

네 질문을 넣어주십시오. –

+0

외국 관계를 포함하는 테이블에 INSERT하고자합니다. 테이블'employee' (내 질문에 표 구조)와 마찬가지로, –

0

같은 것을보십시오 : sex_label 남성 또는 여성 중 하나를 포함하는 것 sex 테이블의 필드 이름이

SELECT e.employee_id, e.first_name, e.last_name, s.id 
FROM employee AS e 
JOIN sex AS s 
ON e.sex_id = s.id 
+1

@AryanG 편집 주셔서 감사합니다 :) –

+0

하지만 성별의 ID는 그 값이 아니라 섹스 테이블의 가치를 보여주는 방법이 있습니까? –

+0

업데이트 된 답변 : –