gpt4 book ai didi

php - 我如何根据另一个查询从 mysql 查询中排除一些记录

转载 作者:行者123 更新时间:2023-12-01 00:09:57 25 4
gpt4 key购买 nike

我需要从表中排除一些记录,并显示它们,然后,我需要显示其他被排除的记录。

我有 3 个表:

+----Songs----+   +----Tags----+   +----s_in_tag----+
| id | | id | | id |
| title | | name | | song_id |
+-------------+ +------------+ | tag_id |
+----------------+

在表 Songs 中,我存储了一个歌曲列表,表 Tags 有一个标签列表,表 s_in_tag 绑定(bind)了这两个表。

假设我在歌曲中有:1,歌曲nr1。在标签中:1、POP; 2、说唱; 3、古典。在 s_in_tag 中:1、3、2。这意味着 song nr1 有标签 Classical

我希望能够在我的仪表板中添加/删除标签,但我如何进行正确的查询以获取所有歌曲标签,并将它们显示为选中的复选框,然后显示表中的其他标签 标记为未选中的复选框?

到目前为止我已经知道了:

SELECT * FROM tags
JOIN s_in_tag
ON tags.id = s_in_tag.tag_id
WHERE s_in_tag.song_id = *song id*
AND s_in_tag.tag_id NOT IN (SELECT tags.id FROM tags) GROUP BY tags.id

我只是尝试我在网上找到的东西,希望有人能帮助我。

最佳答案

为什么不将它们都包含在同一个查询中?

SELECT t.id, t.name, st.id IS NOT NULL AS is_checked
FROM Tags t
LEFT JOIN s_in_tag st ON t.id = st.tag_id AND st.song_id = [song_id];

关于php - 我如何根据另一个查询从 mysql 查询中排除一些记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28077419/

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