[英]Select record based on two tables
假設我有三個表,分別稱為比特率,歌曲和文件。
表比特率
-------------------------------
| 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 ”。 當用戶向該歌曲添加不同的比特率曲目時,用戶必須從“
選擇*從比特率
如果用戶將“ 128kbps”音軌添加到“ 我的歌曲1 ”,然后當他將另一張目標音樂上傳到同一首歌曲時,他將無法再次選擇“ 128kbps ”比特率。 意思是我想檢查一首歌曲是否已經具有128kbps比特率的歌曲,然后當我查詢比特率表時,僅顯示“ 128kbps ”以外的其他比特率。 如何做到這一點? 謝謝
上載表格
埃洛,隊友。 您可以使用條件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的比特率
在 此處閱讀有關NOT IN條件的更多信息
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.