Вот моя база данных, предназначенная для хранения данных о музыкантах. Мои навыки разработки баз данных не самые большие, но, надеюсь, все в порядке.Запрос нескольких таблиц в SQL с помощью объединений
Теги = жанры, например рок.
Skills = гитара или вокалиста
User_tags и user_skills просто используется для связывания таблиц вместе, так как пользователь может иметь много навыков и много тегов.
Что я пытаюсь сделать, так это запросить базу данных, чтобы я мог найти пользователей, обладающих определенными навыками и интересующихся определенными жанрами. Например, найдите всех пользователей, которые интересуются скалой и могут играть на гитаре. Я посмотрел присоединяется и сумел придумать следующий запрос:
SELECT users.username, skills.skill_name
FROM user_skills
JOIN users
ON users.user_ID = user_skills.user_ID
JOIN skills
ON skills.skill_ID = user_skills.skill_ID
WHERE skills.skill_name = 'Guitar';
Это работал, и я был в состоянии найти всех пользователей, которые играли на гитаре, но я не могу понять, как включить другую половину базы данных, а также (теги). Я попытался это:
SELECT users.username, skills.skill_name, tags.tag_name
FROM user_skills, user_tags
JOIN users
ON users.user_ID = user_skills.user_ID
JOIN skills
ON skills.skill_ID = user_skills.skill_ID
JOIN tags
ON tags.tag_ID = user_tags.tag_ID
WHERE skills.skill_name = 'Guitar' AND tags.tag_name = 'Rock';
Но я получил ошибку: #1054 - Unknown column 'user_skills.user_ID' in 'on clause'
колонна, безусловно, есть, хотя, так что единственное, что я могу думать о том, что разбивает это вы не можете присоединиться, когда вы выбираете вещи из два стола. Каждый другой пример, на который я смотрел, - это просто выбор данных из одной таблицы.
Кто-нибудь знает, как я могу запросить все мои таблицы?
Не смешивайте синтаксис старого и нового стиля. Простое правило: никогда не используйте запятые в предложении 'from'. –
Извинения, я не знал, что у меня были смешанные старые и новые стили. Это то, что мне удалось собрать вместе с просмотром видео и чтением. Я обязательно проверю правильный синтаксис и исправлю его. – Andy