mysql - 集合的交集

标签 mysql sql

我试图记住针对此类问题的 SQL 解决方案是什么。假设我有下表:

tagged_nodes:

  1. nid - 节点 ID。外键。
  2. tid - 标签 ID。外键。
  3. tnid - 主键(与当前问题无关)。

节点:

  1. nid - 节点 ID。主键。
  2. ... - 其他列不相关。

假设我有一组标签 ID (tid),我想返回一组关联节点(交集)。我该怎么做?

最佳答案

SELECT nodes.* FROM nodes                           /* Load node info */
JOIN tagged_nodes ON tagged_nodes.nid = nodes.nid   /* Match node-tag rows with node rows */
WHERE tagged_nodes.tid IN (1, 2, 3)                 /* Filter using tag relationship */

关于mysql - 集合的交集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8108295/

相关文章:

mysql - C 程序和 Ruby on Rails 应用程序之间传递数据的方式

mysql - SQL为每个用户存储大量数据

mysql - SQL 查询中的列计数

sql - Excel VBA/SQL 联合

在 Dynamics AX 中运行 X++ 类时出现 SQL 错误 : The multi-part identifier "D.DATAAREAID" could not be bound

sql - 如何在 SQL Server 中创建复合键而不使其成为主键?

php - 从具有多个连接的 SQL 查询中提取和计算唯一列

mysql - 将 SQL Server 数据持续推送到 MySQL

php - SQL ORDER BY(开始于)

javascript - echo onClick 后删除 sql 行