如何使用 mySQL 视图和更新来更改 table

How to use mySQL view and UPDATE to change a table

mySQL几乎是个菜鸟,但我会尽可能清楚地解释我所做的事情。

所以我使用以下数据在 mySQL 中创建了一个视图。这 returns 返回当月出生的成员的详细信息。我把它命名为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" 的列更新成员 table。

我无法完成查询,因为它似乎不喜欢我正在尝试更新 select 查询从中提取的内容这一事实。

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)

看来我想从会员那里读得太多了,而且越来越糊涂了,但我无法从研究中找到一种方法来做到这一点。任何关于我做错了什么的指示都将不胜感激,因为单个查询工作正常,只是放在一起时不行。谢谢。

我想你只是想要一个相关的子查询或 join:

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