簡體   English   中英

如何使用MySql和PHP存儲/處理多個表的數據

[英]How to store/process multiple tables's data using MySql and PHP

我有5個不同的MySql表,即:

u_t(uid,pwd,field1,field2)

t_1(tid_1,ut_uid,field_1,field_2,points)

t_2(tid_2,ut_uid,field_1,field_2,points)

t_3(tid_3,ut_uid,field_1,field_2,points)

t_4(tid_4,ut_uid,field_1,field_2,points)

PS:uid = pk,tid_1,2,3,4 = pk,ut_uid = fk

以上所有表格都基於一些獨特的功能提供了一些信息。

現在我希望使用PHP從每個表中獲取每個用戶存儲和顯示目的的點數總和。

嘗試

select u_t.uid, 
       sum(t_1.points+t_2.points+t_3.points+t_4.points+t_5.points) as total_p
from u_t
left outer join t_1 on t_1.ut_uid = u_t.uid
left outer join t_2 on t_2.ut_uid = u_t.uid
left outer join t_3 on t_3.ut_uid = u_t.uid
left outer join t_4 on t_4.ut_uid = u_t.uid
group by u_t.uid

這個丑陋的版本:

SELECT ut.uid, sum(t1.pts + t2.pts + t3.pts + t4.pts) total
FROM u_t ut
LEFT JOIN
(
  SELECT ut_uid, sum(points) pts
  FROM t_1
  GROUP BY ut_uid
) t1
  on ut.uid = t1.ut_uid
LEFT JOIN
(
  SELECT ut_uid, sum(points) pts
  FROM t_2
  GROUP BY ut_uid
) t2
  on ut.uid = t2.ut_uid
LEFT JOIN
(
  SELECT ut_uid, sum(points) pts
  FROM t_3
  GROUP BY ut_uid
) t3
  on ut.uid = t3.ut_uid
LEFT JOIN
(
  SELECT ut_uid, sum(points) pts
  FROM t_4
  GROUP BY ut_uid
) t4
  on ut.uid = t4.ut_uid
GROUP BY ut.uid

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM