我有我已经联合起来,并想加入具有多个列的表几桌。我目前的查询如下:MySQL的观点加入表多行
select
usrs.firstname, usrs.middleNames, usrs.surname,
if (usrs.sex=0,'Male','Female') as sex,
usrs.DOB,
(YEAR(CURDATE())-YEAR(usrs.DOB)) - (RIGHT(CURDATE(),5)<RIGHT(usrs.DOB,5)) AS age,
birth.townName AS 'birthTown', birth.regionName AS 'birthRegion', birth.countryName AS 'birthCountry',
location.townName AS 'curTown', location.regionName AS 'curRegion', location.countryName AS 'curCountry',
usrs.email, emails.email AS 'alternateEmail',
numbers.number,
usrs.website,
usrs.aboutMe,
family.mother, family.father, family.partner, marital.status, family.aboutFamily,
children.name AS 'childsName'
from ch09.tbl_users usrs
LEFT JOIN vw_town_region_country birth ON birth.townID = usrs.birthPlace
LEFT JOIN vw_town_region_country location ON location.townID = usrs.currentLocation
LEFT JOIN tbl_alternate_emails emails ON emails.userID = usrs.id
LEFT JOIN tbl_contact_numbers numbers ON numbers.userID = usrs.id
LEFT JOIN tbl_family family ON family.userID = usrs.id
LEFT JOIN tbl_marital_status marital ON family.maritalStatusID = marital.id
LEFT JOIN tbl_children children ON family.id = children.familyID
我把我的整个查询它可能是一个错误或干净的方式来做到这一点。问题在于tbl_children,因为它是“一对多”,所以对于tbl_children表中每个用户拥有的每个子用户,它会为单个用户生成多行。
所以我的结果是:
userID:1 firstName middleNames surname ....... childsName
userID:1 firstName middleNames surname ....... childsName
userID:1 firstName middleNames surname ....... childsName
我宁愿:
userID:1 firstName middleNames surname ....... childsName childsName2 childsName3
是否有可能通过某种方式加入做到这一点?显然,我不能在视图上为每个用户输入多个条目。
感谢您的帮助
克雷格。
我应该在发布前添加更多的信息。我将从儿童表中检索性和信息。目前我的tbl_contact_numbers和tbl_alternate_emails被唯一的userID绑定,但我打算在完成脚本后再打开它。所以稍后会有同样的问题。 –