У меня есть таблица a, которая хранит created_by и updated_by, в то время как оба они просто сохраняют user_id, в то время как у меня есть таблица b, которая хранит user_id и имя_пользователя. Кажется, я не могу получить тот же столбец с двумя разными критериями. У меня есть два sql, но как их объединить
SELECT b.user_name FROM a.created_by WHERE b.created_by = a.user_id
SELECT b.user_name FROM a.updated_by WHERE b.updated_by = a.user_id
Я не очень разбирался в вашем вопросе, но я думаю, что вы хотите смешивать два запроса в одном:
SELECT b.user_name
FROM a
join b on (a.user_id=b.created_by or a.user_id=b.updated_by)
Вы можете присоединиться к таблицам:
select
cb.user_name as createdBy,
ub.user_name as updatedBy
from
a
left join b cb on a.created_by = cb.user_id
left join b ub on a.updated_by = ub.user_id
вы можете использовать inner join
вместо left join
... не уверены в ваших требованиях.
updated
также для вставки. Но хранение информации о записи, измененной пользователем, не очень хороший дизайн, лучше audit tables
Я не совсем уверен в вашей структуре таблицы, но мне кажется, вы хотите сделать что-то вроде
SELECT u.user_name createdBy, v.user_name changedBy
FROM tablea t
INNER JOIN tableb u ON u.user_id=t.created_by
INNER JOIN tableb v ON v.user_id=t.changed_by
FROM a.created_by