我有兩個select語句我想合併成一個,但我真的只需要第二個select語句中的一個字段的信息(來自user_info_data的字段data
)。我需要的字段是名字,姓氏,電子郵件,課程全名,角色和字段data
其中fieldid ='15'。第一個選擇語句會給我一切,但數據字段。第二個給我的東西除了課程。我試着做第二個選擇語句類似於角色字段,但它抱怨它返回多個行。如果我嘗試只使用沒有fieldid = '15'部分的課程名稱,它會帶來超過10萬條記錄(每個用戶在每個課程中都顯示出來,並顯示他們的所有數據)。多個mysql連接,如何結合這兩個select語句
的字段的表:
user(id,auth,confirmed,policyagreed,username,password,idnumber,firstname,lastname,email,phone etc..)
user_info_data(id,userid,fieldid,data)
role(id,name,shortname,description,sortorder)
role_assignments(id,roleid,contextid,userid...)
context(id,contextlevel,instanceid,path,depth)
首先聲明:
名字姓氏電子郵件課程角色
李四john.doe:第一stament的
SELECT user.firstname AS Firstname, user.lastname AS Lastname, user.email AS Email, course.fullname AS Course, role.name AS Role
FROM user AS user, course AS course,role,role_assignments AS asg
INNER JOIN context AS context ON asg.contextid=context.id
WHERE context.contextlevel = 50
AND role.id=asg.roleid
AND user.id=asg.userid
AND context.instanceid=course.id
輸出@ email.com課程-N AME學生
其次聲明:
名字姓氏電子郵件IBCLC認證
:第二stament的
SELECT user.firstname AS 'First Name', user.lastname AS 'Last Name', user.email AS 'Email', user_info_data.data AS 'IBCLC Certified'
FROM user, user_info_data
WHERE user.id = user_info_data.userid
AND fieldid = '15'
輸出所需輸出:
名字,姓氏,電子郵件,IBCLC認證,當然,角色
其他select語句我想:調出9494條記錄,但現在哪裏fieldid是15場的數據是可能的選擇列表,能那是爲什麼?
SELECT user.firstname AS Firstname, user.lastname AS Lastname, user.email AS Email, userdata.data, course.fullname AS Course, role.name AS Role
FROM user AS user, course AS course, user_info_data AS userdata, role,role_assignments AS asg
INNER JOIN context AS context ON asg.contextid=context.id
WHERE context.contextlevel = 50
AND userdata.fieldid = 15
AND role.id=asg.roleid
AND user.id=asg.userid
AND context.instanceid=course.id
在您嘗試的select語句上,爲什麼不直接在FROM子句中添加'role'而不是使用嵌入式select語句呢? – northpole 2012-07-18 14:39:41
@northpole工作,並帶來了與第一個聲明相同的結果,但我仍然不知道如何獲得fieldid = 15的字段'data',而沒有113974條記錄;應該只有94. – Jonathan 2012-07-18 14:53:16
@johathan - 你是說只有94行fieldid = 15?這是你減少這張桌子的唯一的東西。它應該加入以用戶名來說用戶嗎?在我看來,你可能會錯過附加的where子句。 – northpole 2012-07-18 15:12:18