2016-07-20 3 views
0

Предположим, у меня есть три таблицы, называемые битрейтом, песней и файлом.Выберите запись на основе двух таблиц

Таблица- Bitrate

------------------------------- 
| bitrate_id | bitrate_name | 
--------------------------------- 
|  1  | 128kbps  | 
--------------------------------- 
|  2  | 320kbps  | 
--------------------------------- 

Таблица- Песня

------------------------------- 
| song_id  | song_title | 
--------------------------------- 
|  1  | My song 1 | 
--------------------------------- 
|  2  | My song 2 | 
--------------------------------- 

Таблица- файл

--------------------------------------------------------------------- 
| file_id  |  song_id | song_location | bitrate_id | 
---------------------------------------------------------------------- 
|  1  |  1  |  loc 1  |  1   | 
---------------------------------------------------------------------- 
|  2  |  2  |  loc 2  |  1   | 
--------------------------------------------------------------------- 

У меня есть приложение, в котором пользователь создает песню и загружает другую дорожку с битрейтом под конкретную песню. Предположим, у меня есть песня под названием «Моя песня 1». Когда пользователь добавить различный битрейт трек этого пользователю песни должно выбрать битрейт от выбора поля генерируется из «

SELECT * FROM битрейта

Если пользователь добавить 128kbps трека к» Моей песне 1 ", а затем, когда он загружает другой тарк в ту же песню, он не может выбрать« 128kbps ». Битрейт снова. Я хочу проверить, имеет ли песня уже 128 тыс. Бит битрейт, а затем, когда я запрашиваю таблицу битрейта, просто показываю другую битрейт кроме "128kbps ". Как добиться этого? Благодаря

Загрузить Форма

enter image description here

+0

Вы должны показать нам свою форму – RiggsFolly

+0

Извините, что не понял –

+0

У вас есть форма, где пользователи вводят название песни и скорость передачи, видят ее (HTML) – RiggsFolly

ответ

1

Элло, приятель. Вы можете попытаться выбрать битрейты, где текущая песня не использует это, используя условие NOT IN.

SELECT * FROM `bitrate` AS `b` WHERE b.bitrate_id NOT IN 
    (SELECT `bitrate_id` FROM `file` 
     WHERE `file_id` = {{here comes the actual file ID}} 
    ); 

На запросе выше, мы стараемся выбрать битрейт, где его bitrate_id нет в некоторой строке в таблице файла

Подробнее о состоянии hereНЕ В

+0

Спасибо. Пробовал. Но не повезло –

Смежные вопросы