2017-04-22 1 views
0

mySQLとほぼ完全に新人ですが、これまでできることをできる限り明確に説明していきます。mySQLビューとUPDATEを使用してテーブルを変更する方法

したがって、次のデータを使用してmySQLでビューを作成しました。今月に生まれたメンバーの詳細を返します。私はそれをbirthdays_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

私は試していないが、私は、私はビューを取り除くでしょう= ' – sergiol

+0

'で 'IN'を交換することをお勧めします。それは気を散らす。 – Strawberry

答えて

0

私はあなただけで相関サブクエリまたはjoinをしたいと思う:

update member m join 
     birthday_thismonth btm 
     on m.member_id = btm.member_id 
    set m.birthday_discount = 'b'; 
関連する問題