1
该查询在mysql中很好用,但我试图在postgresql中运行它,它抱怨IGNORE
关键字不是pg关键字。我不知道如何修改它以使其在pg下执行相同的操作?将mysql查询转换为postgresql
DROP TABLE IF EXISTS ct_tmp_u1101_t9;
CREATE TEMPORARY TABLE ct_tmp_u1101_t9(id int primary key, shared int default 0) IGNORE (SELECT 1101 as id);
SELECT shared from ct_tmp_u1101_t9
UNION (SELECT cust_user2role.userid AS userid FROM cust_user2role
INNER JOIN cust_users ON cust_users.id = cust_user2role.userid
INNER JOIN cust_role ON cust_role.roleid = cust_user2role.roleid
WHERE cust_role.parentrole like 'H1::H2::H3::H4::H5::%')
UNION (SELECT groupid FROM cust_groups where groupid in (3,4,2,1005));
什么是忽略请勿在MySQL中? –
IGNORE关键字告诉MySQL放弃所有重复记录而不会产生错误 – asdbabil
如果您之前放弃了该行,该临时表如何包含行?您删除表,重新创建它并使用单行填充(其中共享获取值0和id = 1101)。这背后的意图是什么?我有这样的感觉,临时表根本就没有必要。 –