-
mysql 두 개의 테이블 데이터 사용하기 예시들프로그래밍/DB 2017. 9. 30. 18:22728x90반응형
두 개의 테이블에서 칼럼들 읽어오기 (inner join)
SELECT t1.*, t2.*FROM table1 t1, table2 t2
WHERE t1.id = t2.t1_id
다른 테이블 정보로 칼럼 데이터 업데이트 하기
UPDATE table1 t1, table2 t2
SET t1.field_to_change = t2.field_with_data
WHERE t1.field1 = t2.field2;
다른 테이블 필드 값을 추가하기
INSERT INTO tbl_temp2 (fld_id)
SELECT tbl_temp1.fld_order_id
FROM tbl_temp1 WHERE tbl_temp1.fld_order_id > 100;
특정 문자열을 select 문과 같이 사용할 경우에는 select 문의 필드명에서 그냥 특정 문자열을 입력하면 된다.INSERT INTO db2.b (x,y,z) SELECT x,y,4 FROM db1.a테이블 2에 있는 데이터가 테이블 1에 없을 경우에만 (NOT EXISTS) 테이블 2 정보를 테이블 1로 입력하기.insert into t1 ( `c1`, `c2`, `c3`, `c4`, `c5`) SELECT `c1`, `c2`, `c3`, `c4`, `c5` FROM t2 WHERE NOT EXISTS (SELECT * FROM t2 WHERE t1.c1 =t2.`c2`);테이블 2에 없는 데이트들만 테이블 1에서 선택하기.SELECT a.* FROM #test1 a WHERE NOT EXISTS (SELECT * FROM #test2 b WHERE a.type = b.type);처음에 위 mysql문에서 아래와 같이 사용하였더니SELECT * FROM #test1 a WHERE NOT EXISTS (SELECT * FROM #test2 b WHERE a.type = b.type);Unknown column in order clause 에러가 나왔다.order 문도 없는데 에러가 나와서 당황했는데 역시 스택오버플로에서 답을 찾았다 ㅠㅠ결론만 적으면 phpmyadmin에서 첫번째 칼럼에 자동적으로 order by를 지정한다고 한다.The reason is that phpMyAdmin is adding an ORDER BY to your query for the first column in the results grid. Because of the alias, the code that does this fails.This issue reproduces on phpMyAdmin 4.0.6. I don't know the status on the latest 4.2.5참고: https://stackoverflow.com/questions/17312297/unknown-column-in-order-clause/24534013#24534013?newreg=74111d804c0445868c139e34ecdf4fa7테이블 2에도 있는 데이터에만 정보를 테이블 1에 업데이트 하기.
update table2 set `holiday`=1 where exists
(select * from table1 where table1.date = table2.date)
728x90반응형'프로그래밍 > DB' 카테고리의 다른 글
Waiting for table metadata lock 대처방법 (0) 2017.12.25 mysql int 타입 최대/최소 값 (0) 2017.10.01 리눅스와 mysql의 max_open_file 사이즈 변경하기 (1) 2017.05.21 mysql 로그 확인 및 저장하기 (0) 2017.05.09 mysql 테이블 구조 및 내용 복사하기 (insert into select 구문) (0) 2017.01.13