2017-04-22 8 views
0

mySQL을 사용하는 거의 완벽한 신인이지만, 가능한 멀리까지 내가 한 일을 설명하려고 노력할 것입니다.테이블을 변경하기 위해 mySQL 뷰와 UPDATE를 사용하는 방법

그래서 다음 데이터를 사용하여 mySQL에서 뷰를 만들었습니다. 이번 달에 태어난 회원들의 세부 사항을 돌려줍니다. 나는 그것을 birththays_thismonth라고지었습니다.

SELECT member.member_id,CONCAT(person.firstname,' ', person.surname) AS 'Member Name', 
FLOOR(DATEDIFF(CURRENT_DATE,member.registration_date)/365) AS 'Years Member For', person.DOB 
FROM person 
JOIN member ON member.person_id = person.person_id AND MONTH(DOB) = MONTH(CURRENT_DATE) 

이제이 데이터를 사용하여 "birthday_discount"라는 열을 사용하여 구성원 테이블을 업데이트 할 수있게하려고합니다.

선택 쿼리를 가져 오는 중 일부를 업데이트하려고한다는 사실이 마음에 들지 않으므로 쿼리를 완료하는 데 문제가 있습니다.

update member SET member.birthday_discount = 'b' 
WHERE member.member_id IN 
(SELECT member.member_id FROM member 
INNER JOIN birthday_thismonth ON member.member_id = birthday_thismonth.member_id) 

너무 많이 구성원에서 읽을하려고하고 혼란지고 있지만 연구에서 할 수있는 방법을 작동 할 수없는 것 같다. 개인 쿼리가 제대로 작동 할 때 잘못 입력 한 사항에 대한 모든 포인터가 도움이 될 것입니다. 고맙습니다.

+0

나는 시도하지 않은,하지만 난'에 의해'IN'을 교체하는 것이 좋습니다 =' – sergiol

+0

내가보기를 제거합니다. 산만 해. – Strawberry

답변

0

나는 그냥 상관 하위 쿼리 또는 join 원하는 생각 :

update member m join 
     birthday_thismonth btm 
     on m.member_id = btm.member_id 
    set m.birthday_discount = 'b';