每个用户都有一个可以管理的本地程序
我要将这三个表导入MySQL数据库。 然后我想要一个SELECT语句来获取cat.name,feed.name和date
的所有eat-events问题是每个用户可能已经分配了一个非唯一的cat.nr或feed.nr(其他用户可能使用了相同的nr)。这不是主要索引,但我将其用作外键关系的INDEX,这是推荐的吗?
为了解决这个问题,我在每个表中添加一个userid字段并添加一个用户表本身(持有user.name,user.id) - 如何完成一个SQL语句,为id为1的用户返回所有eat-events例如?
这是一个很好的方法吗?
答案 0 :(得分:0)
听起来你只需要表上的复合主键。例如,如果列cat_nr对于任何给定的user_id是唯一的(并且user_id可能是唯一的),那么组合它们将为您提供唯一的主键。您也可以通过这种方式连接表格(即在两列上)。
select *
from eat_event e
inner join feed f on f.feed_nr = e.feed_nr and f.user_id = e.user_id
完整查询可能类似于:
select e.event_date, e.event_type, u.user_name, c.cat_nr, f.feed_nr
from eat_event e
inner join feed f on f.feed_nr = e.feed_nr and f.user_id = e.user_id
inner join cat c on c.cat_nr = e.cat_nr and f.user_id = e.user_id
inner join [user] u on u.user_id = e.user_id
我希望这会有所帮助。