fix logic about join
This commit is contained in:
+14
-3
@@ -16,6 +16,7 @@ CREATE OR REPLACE PROCEDURE orm_exec_page_v2 (
|
|||||||
Item Who Date Modify Docs
|
Item Who Date Modify Docs
|
||||||
==== ========== ========== ================================================
|
==== ========== ========== ================================================
|
||||||
1 Michael 2025/07/11 根據 ms-sql 的版本, 利用 ChatGPT/DeepSeek 等AI, 改寫為 Mariadb 版
|
1 Michael 2025/07/11 根據 ms-sql 的版本, 利用 ChatGPT/DeepSeek 等AI, 改寫為 Mariadb 版
|
||||||
|
2 Michael 2026/03/09 欄位加入 ma. 若擴充欄位檔 sys_joinfields 有定義
|
||||||
|
|
||||||
*/
|
*/
|
||||||
BEGIN
|
BEGIN
|
||||||
@@ -89,11 +90,21 @@ BEGIN
|
|||||||
SELECT joinfields, jointables INTO _joinfields, _jointables
|
SELECT joinfields, jointables INTO _joinfields, _jointables
|
||||||
FROM sys_joinfields WHERE menuid = _menuid;
|
FROM sys_joinfields WHERE menuid = _menuid;
|
||||||
|
|
||||||
SET _alias = 'ma.';
|
IF _joinfields IS NOT NULL AND _joinfields <> '' THEN
|
||||||
SET _tbl_alias = ' ma ';
|
SET _alias = 'ma.';
|
||||||
|
SET _tbl_alias = ' ma ';
|
||||||
|
ELSE
|
||||||
|
SET _alias = '';
|
||||||
|
SET _tbl_alias = '';
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
-- 統一加 alias 邏輯
|
||||||
IF LOCATE('ma.', _orderby) = 0 THEN
|
IF LOCATE('ma.', _orderby) = 0 THEN
|
||||||
SET _orderby = CONCAT(_alias, _orderby);
|
SET _orderby = CONCAT(_alias, _orderby);
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
|
-- 應該在此處把相關欄位都加上 alias 2026/03/09 Michael
|
||||||
|
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
-- 建立 WHERE 條件
|
-- 建立 WHERE 條件
|
||||||
@@ -115,7 +126,7 @@ BEGIN
|
|||||||
SET _wheresql = CONCAT(
|
SET _wheresql = CONCAT(
|
||||||
_wheresql,
|
_wheresql,
|
||||||
IF(v_pos > 1, ' OR ', ''),
|
IF(v_pos > 1, ' OR ', ''),
|
||||||
v_field,
|
_alias, v_field,
|
||||||
' LIKE ',
|
' LIKE ',
|
||||||
QUOTE(CONCAT('%', _where_value, '%'))
|
QUOTE(CONCAT('%', _where_value, '%'))
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user