2017-04-22 2 views
0

Fast ein kompletter Anfänger mit mySQL, aber ich werde versuchen, das, was ich bisher gemacht habe, so klar wie möglich zu erklären.Wie benutze ich mySQL View und UPDATE um eine Tabelle zu ändern

Also habe ich eine Sicht in mySQL mit den folgenden Daten erstellt. Dies gibt Details von Mitgliedern zurück, die im aktuellen Monat geboren wurden. Ich habe es Geburtstage genannt.

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) 

nun diese Daten verwenden, möchte ich mit einer Spalte und die Mitglieder Tabelle in der Lage zu aktualisieren, die „birthday_discount“ genannt wird.

Ich habe Probleme beim Abrufen der Abfrage, da es scheint, dass ich nicht die Tatsache mag, dass ich versuche, etwas zu aktualisieren, von dem die Auswahlabfrage stammt.

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) 

Es scheint, wie ich versuche, von Mitglied zu lesen, zu viel, und es ist immer verwirrt, aber ich kann nicht einen Weg erarbeiten, um es aus der Forschung. Irgendwelche Hinweise darauf, was ich falsch mache, würden geschätzt werden, da die einzelnen Abfragen gut funktionieren, nur nicht zusammen. Vielen Dank.

+0

ich nicht versuchen, aber ich schlage vor, die 'IN' von' = ' – sergiol

+0

ich der Auffassung los bekommen würde zu ersetzen. Es ist ablenkend. – Strawberry

Antwort

0

Ich glaube, Sie wollen einfach nur eine korrelierte Unterabfrage oder join:

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