2016-07-20 23 views
0

Angenommen, ich habe drei Tabelle namens Bitrate, Song und Datei.Wählen Sie Datensatz basierend auf zwei Tabellen

Table- Bitrate

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

Table- Lied

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

Table- Datei

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

Ich habe ein Anwendung, bei der Benutzer einen Song erstellen und verschiedene Bitraten unter dem jeweiligen Song hochladen. Angenommen, ich habe ein Lied namens "Mein Lied 1". Wenn der Benutzer unterschiedliche Bitrate Spur zu diesem Song Benutzer hinzufügen, haben die Bitrate von Select-Box von "FROM Bitrate

SELECT * Wenn der Benutzer 128kbps Spur in dem" erzeugt wählen Mein Lied 1 "und dann, wenn er ein anderes Tarck zum selben Song hochlädt, kann er nicht" 128kbps "Bitrate wählen. Ich möchte überprüfen, ob ein Song bereits 128kbps Bitrate Song hat, dann wenn ich Bitrate Tabelle abfrage, zeige einfach andere Bitrate außer "128kbps ". Wie erreiche ich das? Dank

-Upload-Formular

enter image description here

+0

Sie sollten uns besser Ihr Formular zeigen – RiggsFolly

+0

Sorry ich konnte nicht verstehen –

+0

Sie haben ein Formular, wo Benutzer den Song-Namen und die Bitrate eingeben, lassen Sie uns sehen (der HTML) – RiggsFolly

Antwort

1

Ello, Kumpel. Sie können versuchen, die Bitraten auszuwählen, die der aktuelle Song nicht verwendet, indem Sie die Bedingung NICHT IN verwenden.

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}} 
    ); 

Auf der Abfrage oben, versuchen wir, die Bit-Raten zu wählen, wo seine bitrate_id in irgendeiner Zeile in der Tabelle nicht vorhanden ist Datei

here mehr über den NICHT IN Zustand gelesen

+0

Danke. Ich habe es versucht. Aber kein Glück –

Verwandte Themen