2013-12-06 2 views
0

그래서 item, itemPicked 및 person 테이블이 있습니다. 그리고 여기에 내 코드가있다. 나는 신발을 집어 들었던 사람들의 이름을 골라 내고 싶다. 죄송합니다 내 실수로 지금은 며칠 밖에 SQL을 배우기 시작했다. 또는 유사한 것이 있다면 어떻게 찾을 지 제대로 알지 못했습니다.첫 번째 테이블의 정보가 주어진 다른 테이블의 열과 테이블에서 열을 선택하는 방법

내 예상 출력은 다음과 같아야합니다

person8 2003년 4월 5일
person9 2011년 1월 11일

CREATE TABLE item(
itemid INTEGER PRIMARY KEY, 
item_name TEXT); 

CREATE TABLE itemPicked(
person_id INTEGER PRIMARY KEY, 
item_id INTEGER, 
picked_at TEXT); 

CREATE TABLE person(
personid INTEGER PRIMARY KEY, 
person_name TEXT); 
INSERT INTO item 
VALUES 
     (1, 'box'), 
     (2, 'shoe'), 
     (3, 'flower'); 

INSERT INTO itemPicked 
VALUES 
    (8, 2, '04/05/2003), 
    (9, 2, '01/11/2001'), 
    (10, 1, '11/11/2011'); 

INSERT INTO person 
VALUES 
    (1, 'person1'), 
    (2, 'person2'), 
    (3, 'person3'), 
    (4, 'person4'), 
    (5, 'person5'), 
    (6, 'person6'), 
    (7, 'person7'), 
    (8, 'person8'), 
    (9, 'person9'), 
    (10, 'person10'); 
+0

Google에서 "MySQL JOIN"을 찾으십시오. – jraede

답변

0

를 사용하여 SQL은 두 개의 테이블을 조인 조인

SELECT p.person_name, i.picked_at 
    FROM person AS P 
    INNER JOIN itemPicked AS i 
    ON i.person_id = p.personid 
+0

고마워,이 일을하고 지금 내 나머지 문제를 해결하기를 바랍니다 :). 단 한 가지는 마지막에 세미콜론을 놓친 것입니다. – user3000102

0

간단한 JOIN이 트릭을 수행합니다.

select 
    p.person_name, 
    ip.picked_at 
from person p 
join itemPicked ip on p.personid = ip.person_id 
where ip.item_id = 2; 
+0

당신은 어떤 이유로 목록의 첫 번째 것을 보여주었습니다. – user3000102

+0

여기 결과를 볼 수 있듯이 그렇게 생각하지 않습니다 : http://sqlfiddle.com/#!2/99dab/3 btw itemPicked (누락 된 값 없음)의 값에 오류가 있습니다. –

관련 문제