테스트 데이터 :
공급 업체
CREATE TABLE suppliers(
s_id INT NOT NULL AUTO_INCREMENT,
s_name CHAR(50) NOT NULL,
s_city CHAR(10) NULL,
s_zip CHAR(10) NULL,
s_call CHAR(50) NOT NULL,
PRIMARY KEY(s_id)
);
INSERT INTO suppliers(s_id, s_name,s_city, s_zip, s_call)
VALUES(101,'FastFruit Inc.','Tianjin','300000','48075'),
(NULL,'LT Supplies','Chongqing','400000','44333'),
(NULL,'ACME','Shanghai','200000','90046'),
(NULL,'FNK Inc.','Zhongshan','528437','11111'),
(NULL,'Good Set','Taiyuang','030000', '22222'),
(NULL,'Just Eat Ours','Beijing','010', '45678'),
(NULL,'DK Inc.','Zhengzhou','450000', '33332');
과일
CREATE TABLE fruits
(
f_id char(10) NOT NULL,
s_id INT NOT NULL,
f_name char(255) NOT NULL,
f_price decimal(8,2) NOT NULL,
PRIMARY KEY(f_id)
);
INSERT INTO fruits (f_id, s_id, f_name, f_price)
VALUES('a1', 101,'apple',5.2),
('b1',101,'blackberry', 10.2),
('bs1',102,'orange', 11.2),
('bs2',105,'melon',8.2),
('t1',102,'banana', 10.3),
('t2',102,'grape', 5.3),
('o2',103,'coconut', 9.2),
('c0',101,'cherry', 3.2),
('a2',103, 'apricot',2.2),
('l2',104,'lemon', 6.4),
('b2',104,'berry', 7.6),
('m1',106,'mango', 15.6),
('m2',105,'xbabay', 2.6),
('t4',107,'xbababa', 3.6),
('m3',105,'xxtt', 11.6),
('b5',107,'xxxx', 3.6);
테이블 구조 :
과일
f_id s_id f_name f_price
------ ------ ---------- ---------
a1 101 apple 5.20
a2 103 apricot 2.20
b1 101 blackberry 10.20
b2 104 berry 7.60
b5 107 xxxx 3.60
bs1 102 orange 11.20
bs2 105 melon 8.20
c0 101 cherry 3.20
l2 104 lemon 6.40
m1 106 mango 15.60
m2 105 xbabay 2.60
m3 105 xxtt 11.60
o2 103 coconut 9.20
t1 102 banana 10.30
t2 102 grape 5.30
t4 107 xbababa 3.60
공급 업체
s_id s_name s_city s_zip s_call
------ -------------- --------- ------ --------
101 FastFruit Inc. Tianjin 300000 48075
102 LT Supplies Chongqing 400000 44333
103 ACME Shanghai 200000 90046
104 FNK Inc. Zhongshan 528437 11111
105 Good Set Taiyuang 030000 22222
106 Just Eat Ours Beijing 010 45678
107 DK Inc. Zhengzhou 450000 33332
- 내부 쿼리 가입
SELECT suppliers.`s_id`,s_name,f_name,f_price
FROM fruits,suppliers
WHERE fruits.`s_id`=suppliers.`s_id`;
과일 및 공급 업체 테이블로 테이블 비교, 정규화 된 이름 (형식 "테이블 이름, 열 이름")로 테이블의 요구가 주어질 때 너무에만 S_ID 경우, MySQL은을 의미하는 알 수 없습니다, 같은 필드가 S_ID A, 반환 오류 메시지.
- 내부 조인
SELECT suppliers.`s_id`,s_name,f_name,f_price
FROM fruits inner join suppliers
on fruits.`s_id`=suppliers.`s_id`;
과일 및 과일 공급 업체의 이름의 쿼리 공급 f_id = 'A1'과일 공급 유형
select f.`f_name`,s.`s_name`
from fruits as f inner join suppliers as s on f.`s_id`=s.`s_id`
where f.`s_id`=(select s_id from fruits as f where f.`f_id`='a1');
내부는 XXXX 여기서 XXXX에서 XXXX 가입
- 자동 가입
과일 과일에 의해 제공된 형식의 질의 공급 f_id = 'A1'을
select f.`f_name` from fruits as f , fruits as r
where f.`s_id`=r.s_id and r.f_id='a1';
참고 : 선택 하위 쿼리
SELECT f.`f_name`
FROM fruits AS f
WHERE f.`s_id`=(SELECT s_id FROM fruits AS f WHERE f.`f_id`='a1')