Advertisement
yarin0600

Untitled

Nov 15th, 2023
1,172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 1.54 KB | None | 0 0
  1. User(UserCode int, first_name varchar(256), last_name varchar(256), last_login_date (date), password varchar(256));
  2. UserHistLogin (UserCode int,
  3.  
  4.  
  5. CREATE TABLE Users(
  6.         UserCode int PRIMARY KEY,
  7.         first_name varchar(255),
  8.         last_name varchar(255),
  9.         last_login_date DATETIME,
  10.         password varchar(255)
  11.     );
  12.  
  13. CREATE TABLE UserHistLogin(
  14.     UserCode int,
  15.     LoginDate DATETIME,
  16.     LoginStatus int,
  17.     PRIMARY KEY (UserCode, LoginDate),
  18.     FOREIGN KEY (UserCode) REFERENCES Users(UserCode)
  19. );
  20.  
  21. -- Insert dummy data into Users table
  22. INSERT INTO Users (UserCode, first_name, last_name, last_login_date, password)
  23. VALUES
  24. (1, 'John', 'Doe', '2023-11-15 10:00:00', 'password123'),
  25. (2, 'Jane', 'Smith', '2023-11-14 15:30:00', 'securepass'),
  26. (3, 'Alice', 'Johnson', '2023-11-13 08:45:00', 'letmein');
  27.  
  28. -- Insert dummy data into UserHistLogin table
  29. INSERT INTO UserHistLogin (UserCode, LoginDate, LoginStatus)
  30. VALUES
  31. (1, '2023-11-15 10:00:00', 1), -- Successful login
  32. (1, '2023-11-14 09:30:00', 0), -- Failed login
  33. (2, '2023-11-14 15:30:00', 1), -- Successful login
  34. (3, '2023-11-13 08:45:00', 1); -- Successful login
  35.  
  36.  
  37. Assumption: UserCode is int and not string:
  38.  
  39.  
  40. SELECT *
  41. FROM Users
  42. JOIN UserHistLogin
  43. ON Users.UserCode
  44. WHERE LoginStatus = 1 AND Users.UserCode = "SHAIJA"
  45. ORDER BY LoginDate DESC
  46. LIMIT 1;
  47.  
  48.  
  49. SELECT first_name, last_name
  50. FROM Users
  51. WHERE UserCode IN (
  52.     SELECT UserCode
  53.     FROM UserHistLogin
  54.     WHERE login_status = 0
  55.         AND DATE(login_date) = CURRENT_DATE
  56.     GROUP BY UserCode
  57.     HAVING COUNT(*) >= 3
  58. );
  59.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement