Wpis z mikrobloga

#mysql #mssql #sql #programowanie #pytanie #zapytanie

Męczę się nad takim zapytaniem. Może ktoś ma jakiś pomysł?

Mam wyłącznie jedną tabelę w bazie. Nazywa się np. "Ludzie". w niej mam idludzia oraz jego cechę. I wpisy np. id ludzia=245, cecha =ładny; id ludzia=245 cecha = śmieszny itd....

W ten sposób robiąc select mogę w prosty sposób pobrać wszystkie cechy ludzia o ID = 245.

Ale! Potrzebuję (wyłącznie na poziomie SQL) zrobić zapytanie które policzy mi ile ludzi (unikalne id
ludzia) posiada cechę zarówno śmieszny jak i ładny.

Wydaje się proste ale siedzę nad tym z godzinę.

Pomoże ktoś? ;-)
  • 14
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@komeniusz: dobrze napisałeś, to nie wina braku kawy :D Sam w ten sposób to zrozumiałem, bo jak inaczej można zinterpretować słowa:

ile ludzi [...] posiada cechę zarówno śmieszny jak i ładny.


? :)
  • Odpowiedz
@komeniusz: or też nic nie da - będziesz liczył ludzi tylko z 1 z tych cech, a ludzi z obiema będą policzeni 2 razy. Trzeba zrobić to jakoś tak:

select count(*) from ludzie L1, ludzie L2 where L1.id_ludzia = l2.id_ludzia and L1.cecha = 'ładny' and L2.cecha='śmieszny';
  • Odpowiedz