1
このクエリは、mysqlでうまくいきますが、postgresqlで実行しようとしていて、というキーワードが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
前に行を削除した場合、その一時テーブルに行がどのように格納されますか?テーブルを削除して再作成し、1行(ここでsharedは値0とid = 1101を取得)でデータを設定します。これの背後にある意図は何ですか?私は一時テーブルが全く必要でないという気持ちがあります。 –