几乎是mySQL的新手,但我会尽可能清楚地解释我所做的事情。
所以我使用以下数据在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"的列更新成员表。
我无法完成查询,因为它似乎不喜欢我正在尝试更新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)
好像我试图从会员那里读得太多,而且感到困惑,但我无法通过研究找到方法。任何关于我做错的指示都会受到赞赏,因为个别查询工作正常,而不是放在一起。谢谢。
答案 0 :(得分:0)
我认为你只想要一个相关的子查询或join
:
update member m join
birthday_thismonth btm
on m.member_id = btm.member_id
set m.birthday_discount = 'b';