我想使用mysqli语句查询从三个表中获取具有多对多关系的数据

时间:2013-10-31 23:54:19

标签: php mysqli

我想从三个具有多对多关系的表中获取数据。这是我的数据库的表结构。

用户

uid[pk] fname lname username
 1      John  smith johnsmith

活性

act_id[pk] title
 log       Account Login
 reg       Account Registration

user_activity

serial_number[pk] act_id[fk] user_id[fk] ip_address date time
1                  reg           1       2.2.2.2      - 
2                  log           1       1.1.1.1      -                

我想获取用户名,fname,lname和活动,ip地址和date_time。

Output: johnsmith    john smith    Account Login    1.1.1.1    1-11-2013 4:00am 

2 个答案:

答案 0 :(得分:0)

您需要使用SQL连接:

SELECT * FROM users
LEFT JOIN activity
LEFT JOIN user_activity UA ON (UA.act_id = activity.id AND UA.user_id = users.uid)

答案 1 :(得分:0)

仅选择/加入您的字段 -

SELECT u.username, u.fname, u.lname, a.title, ua.ip_address, ua.date_time
FROM users u
LEFT JOIN user_activity ua ON ua.user_id = u.uid
LEFT JOIN activity a ON a.id = ua.act_id