Попробуйте выполнить запрос ниже. Это приведет к появлению нескольких записей для одного и того же имени «Джон» и «Боб», поскольку у вас есть несколько внутренних и внешних ролей для того же ИД (Id 3). Если это не то, что вы хотите, сообщите мне, какой из них вы хотите отобразить.
CREATE TABLE #Personnel
(
Name VARCHAR(100) ,
InternalRoleID INT ,
ExternalRoleID INT
);
CREATE TABLE #InternalRoles
(
ID INT ,
Name VARCHAR(100)
);
CREATE TABLE #ExternalRoles
(
ID INT ,
NAme VARCHAR(100)
);
INSERT INTO #Personnel
VALUES ( 'John', 3, NULL ) ,
( 'Bob', NULL, 3 ) ,
( 'Rick', 5, NULL ) ,
( 'Anna', 6, NULL );
INSERT INTO #InternalRoles ( ID ,
Name )
VALUES ( 3, 'Accountant' ) ,
( 3, 'Manager' ) ,
( 5, 'Supervisor' ) ,
( 6, 'Worker' );
INSERT INTO #ExternalRoles ( ID ,
NAme )
VALUES ( 3, 'Delivery Driver' ) ,
( 3, 'Cleaner' ) ,
( 5, 'Electrician' ) ,
( 6, 'Auditor' );
SELECT P.Name ,
COALESCE(IR.Name, ER.NAme) AS RoleName
FROM #Personnel P
LEFT JOIN #InternalRoles IR ON P.InternalRoleID = IR.ID
LEFT JOIN #ExternalRoles ER ON P.ExternalRoleID = ER.ID;
DROP TABLE #ExternalRoles;
DROP TABLE #Personnel;
DROP TABLE #InternalRoles;
Для всех, кто задается вопросом: проблема в том, что он использовал GET в своем коде в какой-то момент, но он исправил это сейчас, и он работает. Пожалуйста, смотрите комментарии к его вопросу для получения дополнительной информации. Некоторые общие замечания после того, как я увидел вопросы и предложенные ответы:
Route::get("api/test", function(){});
можно получить по /api/test
. /api/test/
приводит к исключению MethodNotAllowedException, поскольку Laravel предполагает, что после / что-то следует в качестве параметра get. Так что будьте осторожны:) Это было о старой версии jQuery. Я изменил версию jQuery и проблема была решена. Спасибо за помощь.