반응형
menu_items.parent
가 0 이 아닌 경우 아래 쿼리는 NULL을 반환하며 이는 잘못된 것입니다.
여기서 제가하려는 것은 menu_items.parent
행의 값이 0 이면 원래 값으로 반환하지만 값이 0 <이 아닌 경우입니다. / strong> 그런 다음 값이 무엇이든 해당 행의 이름 (varchar)을 반환합니다.
내가 NULL을 계속 얻는 이유를 아십니까?
참고 : 선택한 다른 모든 열은 정상적으로 제공되므로 쿼리 자체는 정상입니다.
감사
예 1 :
SELECT
...
...
(
CASE
WHEN menu_items.parent = '0' THEN menu_items.parent
ELSE (SELECT name FROM menu_items WHERE id = menu_items.parent)
END
) AS ParentID
...
...
FROM menus
INNER JOIN menu_items ...
...
...
예 2 :
SELECT
...
...
IF
(
menu_items.parent = '0',
menu_items.parent,
(SELECT name FROM menu_items WHERE id = menu_items.parent)
) ParentID
...
...
FROM menus
INNER JOIN menu_items ...
...
...
실제 검색어 :
SELECT
menus.name AS MenuName,
menu_items.id AS MenuItemsId,
menu_items.name AS MenuItemsName
/*
Sub section should go here
*/
FROM users
INNER JOIN assigned_menus ON assigned_menus.fk_users_id = users.id
INNER JOIN menu_items ON menu_items.id = assigned_menus.fk_menu_items_id
INNER JOIN menus ON menus.id = menu_items.fk_menus_id
WHERE
users.id = ? AND
users.is_active = 'YES' AND
menu_items.is_active = 'YES' AND
menus.is_active = 'YES'
ORDER BY
MenuName,
MenuItemsName
menu_items 표
ID name parent fk_menu_items_id
1 Menus 0 1
2 Roles 0 1
3 Permissions 0 1
4 Users 0 1
5 Files 0 1
6 File Uploads 0 1
7 University 6 1
8 Details 6 1
9 Progress 6 1
10 Assg 6 1
11 Applications 0 2
12 New 11 2
13 Edit 11 2
14 Rejected 11 2
15 Approved 11 2
16 Exs 0 2
17 Assm 16 2
18 Stf 0 3
19 Std 0 3
20 Prg 19 3
21 Comm 0 4
22 Sms 21 4
23 Sms2 21 4
24 New2 0 4
25 Act 0 4
해결 방법
SELECT
...
...
(
CASE
WHEN menu_items.parent = '0' THEN menu_items.parent
ELSE (SELECT mi.name FROM menu_items mi WHERE mi.id = menu_items.parent)
END
) AS ParentID
...
...
FROM menus
INNER JOIN menu_items ...
...
...
참조 페이지 https://stackoverflow.com/questions/15270942
반응형
'MySql' 카테고리의 다른 글
MySQL check if a table exists without throwing an exception (0) | 2021.01.09 |
---|---|
MySQL MySqlDataAdapter를 사용한 업데이트가 작동하지 않습니다. (0) | 2021.01.09 |
MySQL ON DUPLICATE KEY UPDATE를 사용하여 MySQL로드 데이터 INFILE (0) | 2021.01.09 |
MySQL MySql 연결 및 따옴표 (0) | 2021.01.09 |
MySQL mysqli_insert_id ()가 항상 0을 반환하는 이유는 무엇입니까? (0) | 2021.01.09 |
댓글