从三个表

时间:2017-05-12 15:50:12

标签: mysql

我试图在MySQL中创建一个视图,使用phpMyAdimn,它将以下面的格式显示来自三个表的数据。它需要按姓氏,名字排序。我之前从未从多个表中提取数据,这对我来说很难掌握。我需要尽快让它工作,以便我可以在Google Data Studio中为我们的客户创建报告。

...谢谢

View需要按此顺序显示数据,并命名为UserCourseProgress。

姓氏,名字,电子邮件,集团(亚特兰大,查尔斯顿,格林维尔,纳什维尔),课程进度,完成日期

数据库中的表和列。

TABLES                      COLUMNS
wp_users                    user_email
wp_usermeta                 first_name, last_name, wp_2_capabilities
wp_2_wpcw_user_progress     unit_completed_status, unit_completed_date

代码I已尝试过。

CREATE VIEW UserCourseProgress AS
SELECT 
    wp_users.user_email, wp_usermeta.first_name, wp_usermeta.last_name, wp_usermeta.wp_2_capabilities, wp_2_wpcw_user_progress.unit_completed_status, wp_2_wpcw_user_progress.unit_completed_date
FROM 
    wp_users,
    wp_usermeta,
    wp_2_wpcw_user_progress
INNER JOIN wp_usermeta ON (wp_users.user_email=wp_usermeta.first_name) AND (wp_users.user_email=wp_usermeta.last_name) AND (wp_users.user_email=wp_usermeta.wp_2_capabilities)
INNER JOIN wp_2_wpcw_user_progress (wp_users.user_email=wp_2_wpcw_user_progress.unit_completed_status) AND (wp_users.user_email=wp_2_wpcw_user_progress.unit_completed_date)

1 个答案:

答案 0 :(得分:0)

我在这里回答了我自己的问题。让我说我是MySQL查询的新手,但你们中的一些人可能已经猜到了。

在我能够让我的查询工作之前,我研究了很多例子,并且花费了几个小时,持续了好几天。我的解决方案的代码如下,它的工作原理。我仍然没有想出如何连接wp_2_capabilities中的数据只显示角色,而不是序列化数据,但这是另一天。

感谢你们的投入。

我的解决方案

CREATE VIEW CourseProgress AS
SELECT
    wp_users.ID,
    wp_users.user_email,
    firstmeta.meta_value AS first_name,
    lastmeta.meta_value AS last_name,
    rolemeta.meta_value AS wp_2_capabilities,
    unitprogress.unit_completed_status
FROM
    wp_users
LEFT JOIN wp_usermeta AS firstmeta
ON
    wp_users.ID = firstmeta.user_id AND firstmeta.meta_key = 'first_name'
LEFT JOIN wp_usermeta AS lastmeta
ON
    wp_users.ID = lastmeta.user_id AND lastmeta.meta_key = 'last_name'
LEFT JOIN wp_usermeta AS rolemeta
ON
    wp_users.ID = rolemeta.user_id AND rolemeta.meta_key = 'wp_2_capabilities'
LEFT JOIN wp_2_wpcw_user_progress AS unitprogress
ON
    wp_users.ID = unitprogress.user_id AND unitprogress.unit_completed_status = 'complete'
WHERE
    rolemeta.meta_value REGEXP 'gs_atlanta|gs_charleston|gs_greenvilee|gs_nashville'
ORDER BY
    wp_users.ID;