Guest User

Untitled

a guest
May 19th, 2018
273
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.95 KB | None | 0 0
  1. CREATE TABLE t_users (
  2. user_id varchar PRIMARY KEY,
  3. user_email varchar
  4. );
  5.  
  6. CREATE TABLE t_items (
  7. item_id varchar PRIMARY KEY,
  8. owner_id varchar not null references t_users(user_id),
  9. title varchar
  10. );
  11. CREATE TABLE t_access_items_users (
  12. access_iu_id varchar PRIMARY KEY,
  13. item_id varchar not null references t_items(item_id),
  14. user_id varchar not null references t_users(user_id)
  15. );
  16.  
  17. CREATE TABLE t_friends (
  18. friend_id varchar PRIMARY KEY,
  19. from_user_id varchar not null references t_users(user_id),
  20. to_user_id varchar not null references t_users(user_id)
  21. );
  22.  
  23. INSERT INTO t_users VALUES ('us123', 'us123@email.com');
  24. INSERT INTO t_users VALUES ('us456', 'us456@email.com');
  25. INSERT INTO t_users VALUES ('us789', 'us789@email.com');
  26. INSERT INTO t_users VALUES ('public', 'public@email.com');
  27.  
  28. INSERT INTO t_items VALUES ('it123', 'us123', 'title1');
  29. INSERT INTO t_items VALUES ('it456', 'us456', 'title2');
  30. INSERT INTO t_items VALUES ('it678', 'us789', 'title3');
  31. INSERT INTO t_items VALUES ('it323', 'us123', 'title4');
  32. INSERT INTO t_items VALUES ('it764', 'us456', 'title5');
  33. INSERT INTO t_items VALUES ('it826', 'us789', 'title6');
  34. INSERT INTO t_items VALUES ('it568', 'us123', 'title7');
  35. INSERT INTO t_items VALUES ('it038', 'us456', 'title8');
  36. INSERT INTO t_items VALUES ('it728', 'us789', 'title9');
  37.  
  38. INSERT INTO t_access_items_users VALUES ('aiu123', 'it123', 'us123');
  39. INSERT INTO t_access_items_users VALUES ('aiu456', 'it456', 'us456');
  40. INSERT INTO t_access_items_users VALUES ('aiu678', 'it678', 'us789');
  41. INSERT INTO t_access_items_users VALUES ('aiu323', 'it323', 'us123');
  42. INSERT INTO t_access_items_users VALUES ('aiu764', 'it764', 'us456');
  43. INSERT INTO t_access_items_users VALUES ('aiu826', 'it826', 'us789');
  44. INSERT INTO t_access_items_users VALUES ('aiu568', 'it568', 'us123');
  45. INSERT INTO t_access_items_users VALUES ('aiu038', 'it038', 'us456');
  46. INSERT INTO t_access_items_users VALUES ('aiu728', 'it728', 'us789');
  47. INSERT INTO t_access_items_users VALUES ('aiu728', 'it728', 'us789');
  48. INSERT INTO t_access_items_users VALUES ('apu123', 'it678', 'public');
  49. INSERT INTO t_access_items_users VALUES ('apu222', 'it123', 'public');
  50. INSERT INTO t_access_items_users VALUES ('apu111', 'it456', 'public');
  51. INSERT INTO t_access_items_users VALUES ('aiu333', 'it728', 'public');
  52. INSERT INTO t_access_items_users VALUES ('aiu444', 'it826', 'public');
  53.  
  54. INSERT INTO t_friends VALUES ('f123', 'us123', 'us456');
  55.  
  56. select *
  57. from t_access_items_users
  58. inner join t_items on t_access_items_users.item_id = t_items.item_id
  59. inner join t_users on t_access_items_users.user_id = t_users.user_id
  60. where t_access_items_users.user_id = 'public';
  61.  
  62. select
  63. t_items.item_id,
  64. t_items.owner_id,
  65. t_items.title
  66. from t_access_items_users
  67. inner join t_items on t_access_items_users.item_id = t_items.item_id
  68. inner join t_friends on t_items.owner_id = t_friends.from_user_id
  69. where t_friends.to_user_id = 'us456'
  70. or t_access_items_users.user_id = 'public';
  71.  
  72. t_friends.to_user_id = 'us456'
  73. or t_access_items_users.user_id = 'public'
Add Comment
Please, Sign In to add comment