【发布时间】:2014-08-11 04:17:31
【问题描述】:
我有四个表:食物、食谱、用户和活动。
活动表具有架构:
mysql> describe activities;
+-----------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| user_id | int(11) | YES | MUL | NULL | |
| recipe_id | int(11) | YES | MUL | NULL | |
| name | varchar(255) | YES | | NULL | |
| amount | int(11) | YES | | NULL | |
+-----------+--------------+------+-----+---------+----------------+
recipes 表具有架构:
mysql> describe recipes;
+--------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| image_url | varchar(255) | YES | | NULL | |
| user_id | int(11) | YES | MUL | NULL | |
| food_id | int(11) | YES | MUL | NULL | |
+--------------+--------------+------+-----+---------+----------------+
foods-recipes 是一对多的关系,recipes-activity 是多对多的关系。
现在我想选择所有关于食物的用户活动。如果用户对食物的食谱采取行动,我认为他对食物采取行动。如果用户对同一种食物的多个食谱进行操作,则应该只计算一个。
谁能告诉我如何编写查询?
【问题讨论】:
-
请阅读规则。您不得询问自己未尝试过的问题的答案!规则:不要问你还没有试图找到答案的问题(展示你的作品!)
-
@Mtn_Wolf 是这样吗?
See your first question in SO -
他不是在寻求解决问题的办法。他们要求一种方法来解决他的情况。
-
使用
JOIN -
@serakfalcon,我不知道如何检测那些链接到相同食物的食谱。这些活动应该只计算一次。
标签: mysql