我需要加入4个表。我有用户表,需要与客户联系,并且使用关系表连接到我的配置文件,然后得到总和。
我的结果会很好
2 Thomas White 2.56 180.00 461.89 0.00 0.00 0.00 antras komentaras
3 Doina Slaivici 5.87 161.17 946.88 0.00 0.00 vienas komentaras
但问题是个人资料评论只能从单个个人资料评论中获取,而不是全部,因为有些用户的资料很少。
我的加入:
SELECT
*,
users.id AS uid,
users.sum_per_hour AS usum_per_hour,
SUM(
customers.sum / 4.33 / customers.days_per_week * profiles.days
) AS total_sum
FROM
users,
relations,
customers,
profiles
WHERE users.id = relations.uid
AND customers.id = relations.cid
AND profiles.uid = relations.uid
AND profiles.cid = relations.cid
GROUP BY users.id
答案 0 :(得分:0)
尝试将您的FROM更改为此
SELECT
*,
u.id AS uid,
u.sum_per_hour AS usum_per_hour,
SUM(c.sum / 4.33 / c.days_per_week * p.days) AS total_sum
FROM users u
LEFT JOIN relations r
ON u.id = r.uid
LEFT JOIN customers c
ON c.id = r.cid
LEFT JOIN profiles p
ON p.uid = r.uid
AND p.cid = r.cid -- # -- this may need to be OR instead of AND
GROUP BY u.id
老实说,我不知道这是否会解决你的问题...你必须问一个更好的问题..意思是显示你目前得到的结果..发布数据(不是图像)或甚至更好地发布一个sqlfiddle所以我们可以自己使用..然后显示您的预期结果。但这是我能看到的猜测