// EDIT Нашел проблему. Я изменил весь тип текста на varchar. Теперь он работает нормально.SQL join on returns none values
У меня есть таблица под названием "звуки", который выглядит так:
RowId типа INT (11) | userID тип текста | имя тип текст | звуковой файл тип текста
1 | "mod001: 02" | «Джимми» | "Музыка/Song.mp3"
и стол под названием "soundlist", который выглядит следующим образом:
soundID типа INT (11) | имя тип текст | звуковой файл тип текста | тип tinyint (1)
1 | "topSong" | "music/song.mp3" | 1
Моя проблема, когда я хочу запустить этот запрос
SELECT *
FROM sounds
INNER JOIN soundlist
ON STRCMP(soundlist.soundfile, sounds.soundfile) = 0
WHERE STRCMP(sounds.userID, "mod001:02") = 0;
я получаю пустой результат!
Моя цель - установить «soundlist.used» на 0. У меня есть только «sounds.userID». настоящее время я использую этот запрос:
UPDATE soundlist
INNER JOIN sounds
ON STRCMP(sounds.userID, "mod001:02") = 0
SET soundlist.used = 0
WHERE STRCMP(soundlist.soundfile, sounds.soundfile) = 0;
Просто используйте обновление, если вы хотите изменить значения из одной таблицы ??? –
Почему вы не присоединяетесь к rowid = soundid – Mihai
Какую версию MySQL вы используете? – Mureinik