gpt4 book ai didi

mysql - 根据两个表选择记录

转载 作者:行者123 更新时间:2023-11-29 11:24:21 26 4
gpt4 key购买 nike

假设我有三个表,分别称为比特率、歌曲和文件。

表-比特率

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

table -歌曲

 -------------------------------
| 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 bitrate

如果用户将128kbps轨道添加到“我的歌曲1”,然后当他将另一个轨道上传到同一首歌曲时,他无法选择“128kbps”再次强调“比特率。意思是我想检查一首歌曲是否已经有 128kbps 比特率歌曲,然后当我查询比特率表时,只显示除“128kbps”之外的其他比特率。如何实现这一目标?谢谢

上传表格

enter image description here

最佳答案

你好,伙计。您可以尝试使用条件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条件的更多信息 here

关于mysql - 根据两个表选择记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38485063/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com