我有3个这样的表:
表格1
+-ID-+-table_3_id-+
| 1 | 1 |
| 2 | 1 |
| 3 | 2 |
+----+------------+
表_2
+-ID-+-table_1_id-+-name--+-value-+
| 1 | 1 | Name1 | Data1 |
| 2 | 1 | Name2 | Data2 |
| 3 | 1 | Name3 | Data3 |
| 4 | 2 | Name1 | Data1 |
| 5 | 2 | Name2 | Data4 |
| 6 | 2 | Name3 | Data5 |
| 7 | 3 | Name1 | Data6 |
| 8 | 3 | Name2 | Data2 |
+----+------------+-------+-------+
表 3 包含 ID 和与该问题无关的其他数据。但是,我需要能够过滤table_3_id
.
这就是我需要的:表 2 有多行,其中包含 table_1 中行的信息。我需要有一个查询来检查“数据”列中是否存在具有相同“名称”的重复项。我需要的结果是这样的(使用 WHERE table_3_id = 1):
+-table_3_id-+-name--+-value-+-duplicate-+
| 1 | Name1 | Data1 | true |
| 1 | Name2 | Data2 | false |
| 1 | Name3 | Data3 | false |
+------------+-------+-------+-----------+
或者,如果可能,只返回实际重复的 table_2 中的数据。“重复”字段也可以是一个计数,因为我确实知道具有相同 table_3_id 的行数。
我希望我的问题已经足够清楚了。如果不够清楚,我会尝试改进它。我已经尝试过使用连接和子查询,但是我的 SQL 知识不足以进行这样的高级查询。我更喜欢在单个查询中而不是在 PHP 中的多个。