Вам не хватает закрывающей скобки на первом внутреннем SELECT
, но я не уверен, что это все равно получит то, что вы хотите.
SELECT
user.user_id,
user.lastname,
(SELECT
reg_fee
FROM event
where event_name = (SELECT event_joined from user)
/* Close the parens and add an alias */
) AS reg_fee
FROM user
WHERE user.registration_type=1 AND user.payment_status=1
Это можно сделать немного более аккуратно (и, возможно, намного быстрее) с помощью JOIN
, при условии, что я правильно вычистил структуру таблицы, и user.event_joined = event.event_name
SELECT
user.user_id,
user.lastname,
SUM(reg_fee)
FROM user JOIN event ON event.event_name = user.event_joined
WHERE user.registration_type = 1 AND user.payment_status = 1
GROUP BY user.user_id, user.lastname