wielokrotne wyniki w MySQL Workbench

wielokrotne wyniki w MySQL Workbench
TR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
0

cześć,
nie mogłem znaleźć podobnego wątku wiec proszę was o pomoc. Uczę się podstaw sql i mam problem z wyświetlaniem wyniku. Utworzyłem 6 użytkowników a program wyświetla mi ich 138 - zapętla się w tych wynikach. W czym rzecz? co robie źle, że wyświetla nieprawidłową ilość użytkowników?
111.png2222.png

TR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
0
Kopiuj

INSERT INTO users(username, display_name, year_of_birth) VALUES('AsiaS', 'Joanna Stryczek', 1966);
INSERT INTO users(username, display_name, year_of_birth) VALUES('BarbraG', 'Barbara Grabara', 1956);

INSERT INTO users(username, display_name, year_of_birth) VALUES('ZuzA', 'Zuza Arbuza', 1986),  ('ZuzH', 'Zuza Hajabuza', 1998),
('JurekK', 'Jerzy Kaktus', 1944), ('JanZ', 'Janek Zgredzio', 1966);

INSERT INTO user_groups (group_name) VALUES ('programiści'), ('narciarze'), ('ćpuny'), ('gracze'), ('brzydale');

INSERT INTO users_to_groups (user_id, group_id) VALUES (1, 1), (1, 3), (2, 4), (3, 1), (3, 5), (4, 2), (4, 4), (5, 1), (5, 2), (6, 5); 

SELECT DISTINCT year_of_birth FROM users order by year_of_birth;

SELECT * FROM users;
SELECT * FROM user_groups;
SELECT * FROM users_to_groups;

po wpisaniu komendy

Kopiuj
SELECT COUNT(username) FROM users;

otrzymuję wynik: 144

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
3

Strzelam, że odpaliłeś to zapytanie insert into więcej niż raz, stąd masz duplikaty.

Zrób delete from users; i odpal insert into ponownie, tym razem tylko raz (np. zakomentowując te insert into-a dla pewności).

FA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 218
7

I tutaj zapisz sobie, żeby w wolnej chwili poczytać sobie o constraintach. Dzięki nim mógłbyś na poziomie bazy zablokować możliwość utworzenia dwóch użytkowników o tej samej nazwie (bo raczej dwóch ich być nie powinno).

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.