簡體   English   中英

根據兩個表選擇記錄

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM