Я желающий только сослаться на первый результате обратно из моей таблицы пользователей, но я получаю следующую ошибкуSQL JOIN первой строки с CONCAT_WS
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1 CONCAT_WS(' ',employeeFirstName,employeeLastName) AS courseAdded FROM vwt_user' at line 6
My SQL выглядит следующим образом
CREATE OR REPLACE VIEW vwt_courses AS
SELECT tw_tblcourse.*, tw_tblprovider.providerName, CONCAT_WS(' ',vwt_userse.employeeFirstName,vwt_userse.employeeLastName) AS courseEditor, tw_tblprovider.providerAdd1, tw_tblprovider.providerAdd2, u_tbltowns.townName AS providerTown, tw_tblprovider.providerPostCode
FROM tw_tblcourse
JOIN tw_tblprovider ON tw_tblprovider.providerID = tw_tblcourse.courseProviderID
LEFT JOIN u_tbltowns ON u_tbltowns.townID = tw_tblprovider.providerTownID
JOIN vwt_users AS vwt_usersa ON vwt_usersa.userID = (SELECT TOP 1 CONCAT_WS(' ',employeeFirstName,employeeLastName) AS courseAdded FROM vwt_users WHERE userID=tw_tblcourse.courseAddedID)
LEFT JOIN vwt_users AS vwt_userse ON vwt_userse.userID = tw_tblcourse.courseEditedID
Я пытался следовать ответ на SQL Server: How to Join to first row, но он не работает, или же я сделал это неправильно :)
Я также попытался:не относится к MySQL так не работает
CREATE OR REPLACE VIEW vwt_courses AS
SELECT tw_tblcourse.*, tw_tblprovider.providerName, CONCAT_WS(' ',vwt_usersa.employeeFirstName,vwt_usersa.employeeLastName) AS courseAdded, CONCAT_WS(' ',vwt_userse.employeeFirstName,vwt_userse.employeeLastName) AS courseEditor, tw_tblprovider.providerAdd1, tw_tblprovider.providerAdd2, u_tbltowns.townName AS providerTown, tw_tblprovider.providerPostCode
FROM tw_tblcourse
JOIN tw_tblprovider ON tw_tblprovider.providerID = tw_tblcourse.courseProviderID
LEFT JOIN u_tbltowns ON u_tbltowns.townID = tw_tblprovider.providerTownID
CROSS APPLY (SELECT TOP 1 vwt_users.employeeFirstName, vwt_users.employeeLastName FROM vwt_users WHERE vwt_users.userID = tw_tblcourse.courseAddedID) vwt_usersa
LEFT JOIN vwt_users AS vwt_userse ON vwt_userse.userID = tw_tblcourse.courseEditedID
Покушение 3:Это один принимается, но не ограничивает по какой-то причине
CREATE OR REPLACE VIEW vwt_courses AS
SELECT tw_tblcourse.*, tw_tblprovider.providerName, CONCAT_WS(' ',vwt_usersa.employeeFirstName,vwt_usersa.employeeLastName) AS courseAdded, CONCAT_WS(' ',vwt_userse.employeeFirstName,vwt_userse.employeeLastName) AS courseEditor, tw_tblprovider.providerAdd1, tw_tblprovider.providerAdd2, u_tbltowns.townName AS providerTown, tw_tblprovider.providerPostCode
FROM tw_tblcourse
JOIN tw_tblprovider ON tw_tblprovider.providerID = tw_tblcourse.courseProviderID
LEFT JOIN u_tbltowns ON u_tbltowns.townID = tw_tblprovider.providerTownID
JOIN vwt_users AS vwt_usersa ON vwt_usersa.userID = (SELECT userID FROM vwt_users WHERE userID = tw_tblcourse.courseAddedID LIMIT 1)
LEFT JOIN vwt_users AS vwt_userse ON vwt_userse.userID = (SELECT userID FROM vwt_users WHERE userID = tw_tblcourse.courseEditedID LIMIT 1)
vwt_users пример:
╔════╦═══════╦══════╦══════╦══════╗
║ ID ║ FIRST ║ LAST ║ COMP ║ LIVE ║
╠════╬═══════╬══════╣══════╣══════╣
║ 1 ║ JOHN ║ DOE ║ 1 ║ 1 ║
║ 1 ║ JOHN ║ DOE ║ 2 ║ 1 ║
╚════╩═══════╩══════╩══════╩══════╝
Фактические поля - это идентификатор пользователя, имя пользователя, идентификатор сотрудника, имя, фамилия, адрес электронной почты, уровень пользователя, идентификатор компании, название компании, актив пользователя. Из них только данные сотрудника (идентификатор, имя, фамилия) и компании (ID и имя) изменяются
@dpDesignz, можете ли вы добавить некоторые данные, поэтому легко проверить – radar
Я добавил пример того, что находится в представлении 'vwt_users'. Я предполагаю, что это вы имели в виду? :) Есть 10 полей, но большинство из них - одни и те же данные. ПРИМЕЧАНИЕ: 'vwt_users' также является видом – dpDesignz
Не присоединяйтесь к vwt_users, получите имена из подзапроса и используйте их, joini g с пользователями заставляет его возвращать столько строк, сколько этот идентификатор пользователя существует, ограничение будет применяться для каждого пользователя Id, конечно, я бы комбо, так как мы присоединяемся к пользователям, те же идентификаторы пользователя совпадают с mtiple times – radar