3番目の選択結果は、最初の2つの選択結果の重複結果です。 それでは、私のデータセットはわずか5 idsだと言うことができます。 最初の2つのステートメントはids 1,2,3を生成する有効= 1 ids 4,5 enabled = 0が必要な最後のステートメントmysql:SELECTに重複した結果を表示しない
しかし今はID 1,2,3,4,5が有効になっている= 1 PLUSのid有効1,2,3,4,5 = 0
SELECT p.*, 1 as enabled
FROM member_permissions mp
JOIN permissions p ON p.permission_id = mp.permission_id
WHERE member_id = 1
UNION
SELECT pgp.*, 1 as enabled
FROM member_permissions mp
JOIN permission_link pl ON pl.permission_group_id = mp.permission_group_id
JOIN permissions pgp ON pgp.permission_id = pl.permission_id
WHERE member_id = 1
UNION
SELECT *, 0 as enabled
FROM permissions p
を働くことができるよう。それはあなたが不平を言っている出力を正確に生成するように縛られています。 – EJP
GROUP BYはあなたが探しているものです... –
最後の選択のポイントは、最初の2つの選択から表示されなかった残りのデータを生成することです。必要な残りのデータを作成するにはどうすればよいですか? – joejoeso