Не зная типов данных в ваших таблицах и предполагая, что вы используете простой тип «дата» для полей даты, вы могли бы просто сделать это: (обратите внимание, где вы видите, КАК это созданное поле, вы можете переименовать их)
SELECT
member_overdue.member_id,
member_overdue.member_firstname,
member_overdue.member_lastname,
DATEDIFF(CURDATE(),membertomship.membertomship_dueday) AS days_diff
FROM
membertomship
Inner Join member_table AS member_overdue ON member_overdue.member_id = membertomship.member_Id
WHERE
membertomship.membertomship_dueday < CURDATE()
Теперь используя этот набор данных в member_table:
member_id member_firstname member_lastname
1 brandon s
2 sally s
3 gregg s
и этот набор данных для членства:
membertomship_id membertomship_StartDate membertomship_enddate membertomship_Totalfee membertomship_dueday membertomship_paymethod member_Id
1 6/1/2011 7/1/2011 45 7/1/2011 cash 1
2 7/1/2010 8/3/2011 45 8/3/2011 cc 2
3 1/1/2009 5/1/2011 45 5/1/2011 cc 3
Дали мне этот набор результатов:
member_id member_firstname member_lastname days_diff
1 brandon s 10
3 gregg s 71
помните, что оператор выбора member_overdue является псевдонимом, который я установил во внутреннем соединении, левая и правая части здесь не являются ничем, а ваша другая таблица не имеет значения, если платежи также обновляют таблицу членства. Если это правда, тогда этот простой запрос - все, что вам нужно.