Podzapytanie w MySql

PY
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 131
0

Witam serdecznie mam problem ze zrobieniem podzapytania w MySQL. Mianowicie mam zapytanie 1 które zwraca mi wszystkie rekordy:

Kopiuj
SELECT `id`,`coupon`,`user`,`userid` FROM `users`

I drugie które zlicza ile użytkownik wykorzystał kuponów:

Kopiuj
SELECT COUNT(`userid`),`userid` From users group by `userid`

Czy można zrobić tak by dla każdego rekordu z pierwszego zapytania podawany był wynik zliczania ile w całej bazie razy userid wykorzystał kupon??

Z góry dziękuję za pomoc

LU
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Gdańsk
0

Można tak zrobić wykorzystując podzapytanie w SELECT.

PA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3900
1

Zapytanie które podałeś, odwołują się do tej samej tabeli users na logikę userid powinien wystąpić w niej tylko raz, ale da się:

Kopiuj
SELECT `id`,`coupon`,`user`,`userid`,
(SELECT COUNT(`userid`),`userid` From users u where u.`userid`= users.`userid` group by `userid`) ilosckuponow
 FROM `users`

tylko to nie robiłbym podzapytaniem w select tylko joinem:

Kopiuj
SELECT 
    `id`
    ,`coupon`
    ,`user`
    ,users.`userid`,
    ,`il`
 FROM 
    `users`
     inner join (SELECT 
                            `userid`
                             ,COUNT(`userid`) il
                      From 
                            users  group by `userid`) u on u.`userid`= users.`userid`

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.