У меня есть две таблицы: пользователь и город. Поля таблицы пользователя:
user_id, user_birth_city, user_current_city, user_school_city
Поля таблицы пользователя:
city_id, city_name
Как показать пользователю все три города?
Используйте LEFT JOIN
в таблице city
в 3 раза, можете это сделать
SELECT u.user_id,c1.city_name,c2.city_name,c3.city_name
FROM user u
LEFT JOIN city c1 ON u.user_birth_city=c1.city_id
LEFT JOIN city c2 ON u.user_current_city=c2.city_id
LEFT JOIN city c3 ON u.user_school_city=c3.city_id
ПРИМЕЧАНИЯ: user
является зарезервированной таблицей в MySQL
, имя таблицы не должно быть
Select b.city_id, b.city_name from user_table a, city_table b where
(a.user_birth_city=b.city_name OR a.user_current_city=b.city_name OR
a.user_school_city=b.city_name) AND user_id='(whatever your user_id is)';
Пользователи SQL будут комментировать, что этот запрос не будет работать из-за запятой в поле, но я заверяю вас, что так будет.
where