所以我有一个问题关于LEFT JOIN,该代码返回不同的值为totalPoints取决于用户是否得到了组与否。 (如果用户没有拿到团体或事件返回正确的值)问题与我LEFT JOIN,总结了它的结果,一个
我只是想掌握如何得到LEFT JOIN flow_ 有 _vote ON flow_ 有 _vote.flow_id = flows.id每次工作。我之前做了一个解决方案之前有三个查询,一个获取组和事件规则,一个检查用户是否得到组或事件考虑安全性和一个获得流量...
而且我想我可以通过有两个查询来解决这个问题,一个可以获取组和事件规则,另外还可以检查用户是否获得了组和事件,然后根据用户获取流的应该有权访问它。
现在我得到在一个查询所需的每一个信息,然后检查与IF语句是否应打印或不...
所以,我的问题是,是否有可能得到SUM(flow_ 有 _vote.points)AS totalPoints以这种方式工作?你知道吗?
而且我有点古怪,是一种查询最好的方式来处理这个?在考虑性能时使用两个是否合理?
SELECT
flows.id AS flowId,
flows.security,
SUM(flow__has__vote.points) AS totalPoints,
users.id AS userId,
users.alias,
flows.event_id AS eventId,
events.group_id AS groupId,
events.membershipRules AS eMR,
groups.membershipRules AS gMR,
user__has__group.permission AS userHasGroup,
user__has__event.permission AS userHasEvent
FROM
users,
events LEFT JOIN user__has__event ON user__has__event.user_id = '.$userId.',
groups LEFT JOIN user__has__group ON user__has__group.user_id = '.$userId.',
flows LEFT JOIN flow__has__vote ON flow__has__vote.flow_id=flows.id
WHERE
flows.user_id = users.id AND
events.id = flows.event_id AND
groups.id = events.group_id AND
flows.id='.$flowId
如果你想知道的SQL语句是干什么的,获得的流量(后),关于事件和组流量中的信息资料,检查到该组的用户访问和事件也让所有的票流...
这是表的样子......
FLOWS id,security,event_id,user_id
USERS id, alias
EVENTS id, name group_id, membershipRules
GROUPS id, name, membershipRules
USER__HAS__GROUP user_id,group_id,permission
USER__HAS__EVENT user_id,event_id,permission
FLOW__HAS__VOTE flow_id,user_id,points
这是我想对...
+--------+----------+-------------+--------+--------+---------+---------+-----+-----+--------------+--------------+
| flowId | security | totalPoints | userId | alias | eventId | groupId | eMR | gMR | userHasGroup | userHasEvent |
+--------+----------+-------------+--------+--------+---------+---------+-----+-----+--------------+--------------+
| 1 | 2 | 1337 | 5 | Pontus | 15 | 2 | 2 | 2 | 4 | 4 |
+--------+----------+-------------+--------+--------+---------+---------+-----+-----+--------------+--------------+
0的结果
和一个例子......
+--------+----------+-------------+--------+--------+---------+---------+-----+-----+--------------+--------------+
| flowId | security | totalPoints | userId | alias | eventId | groupId | eMR | gMR | userHasGroup | userHasEvent |
+--------+----------+-------------+--------+--------+---------+---------+-----+-----+--------------+--------------+
| 1 | 2 | 1337 | 6 | Kezia | 15 | 2 | 2 | 2 | null | null |
+--------+----------+-------------+--------+--------+---------+---------+-----+-----+--------------+--------------+
享受生活〜庞
请张贴您的表格结构和关系。一些样本数据和期望的结果也会非常有用。 – Galz 2011-05-14 10:58:22
希望有足够的关系在WHERE声明中给出... – Pontus 2011-05-14 11:58:17
仍在努力理解您的目标。你想获得结果集中的所有事件,并在userHasEvent下查看这个用户是否真的参与了这个事件? – Galz 2011-05-14 12:17:29