我有一个表的设置如下:SQL订单价值
+---------------+
| resources |
+---------------+
| id |
| name |
+---------------+
+-------------------+
| resource_subjects |
+-------------------+
| resource_id |
| subject_id |
+-------------------+
我需要做的是建立其发现两个资源之间共享的对象的数目的查询。
所以有resource_subjects表是这样的:
+---------------------------+
| resource_id | subject_id |
+---------------------------+
| resource1 | 1 |
| resource1 | 2 |
| resource1 | 3 |
| resource1 | 4 |
| resource1 | 5 |
| resource2 | 1 |
| resource2 | 2 |
| resource2 | 3 |
| resource3 | 1 |
| resource3 | 4 |
+---------------------------+
我想这个查询给我这样的:
+----------------------------------------------------------+
| first_resource | second_resource | shared_subjects_count |
+----------------------------------------------------------+
| resource1 | resource2 | 3 |
| resource1 | resource3 | 2 |
| resource2 | resource3 | 1 |
+----------------------------------------------------------+
要跨的想法,伪代码在我头部会读取类似:
选择
id
ASfirst_resource
,id
ASsecond_resource
,COUNT(受试者 数first_resource和second_resource在resource_subjects表之间共享)ASshared_subjects_count
ORDER BY shared_subjects_count DESC
如果任何人都可以提供一个示例查询,或者甚至点我在正确的方向那d太棒了。
感谢
RESOURCE_ID是在我的情况一个int,我只是用资源1,资源2等的可读性(应该澄清)。谢谢你的回答,很有魅力。 – Paul 2011-02-23 10:08:53