Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: porównanie pól
Forum PHP.pl > Forum > Bazy danych > MySQL
cornholio666
Witam,

Mam dwie tabele

pracownik

id | imie
1 | a
2 | b
3 | c
4 | d

pracownik_info

id | id_pracownika
1 | 1
2 | 1
3 | 2
4 | 3
5 | 3

Gdzie id_pracownika to klucz obcy

Chce zeby zapytanie zwrocilo mi id pracownika z tabeli pracownik ktorego id nie znajduje sie w pracownik_info.id_pracownika, w tym przypadku (4).

Własnie sobie poradziłem z problemem:

  1. SELECT pracownik.id FROM pracownik WHERE pracownik.id NOT IN (SELECT id_pracownika FROM pracownik_info) ;


Mam nowy problem:

pracownik_info

id | id_pracownika | kasa
1 | 1 | 100
2 | 1 | 50
3 | 2 | 150
4 | 3 | 60
5 | 3 | 90
6 | 2 | 10

Mam zwrocic id_pracownika z najwieksza i najmniejszą sumą wynagrodzeń
nospor
ad1) pare postow nizej byla podobna sytuacja. rozwiązano bez podzapytan:
Temat: Relacja wiele do wielu wyciaganie danych

ad2) pobaw sie z group by i having
cornholio666
Cytat
ad1) pare postow nizej byla podobna sytuacja. rozwiązano bez podzapytan:


Dzieki zrobiłem podobnie jak tam gdzie mi pokazales

Cytat
ad2) pobaw sie z group by i having


Bawie sie i bawie ale:

  1. SELECT id_pracownika, MAX(SUM(kasa)) FROM pracownik_info GROUP BY id_pracownika;


błąd

Cytat
Invalid use of group function


Googlowalem i sobie nie poradzilem. Nie wiem o co z tym GROUPEM chodzi. Może jakas podpowiedz ?
nospor
no faktycznie, to nie tak prosto jak mi sie wczoraj wydawalo
  1. SELECT id_pracownika, sum(kasa) suma FROM pracownik_info GROUP BY id_pracownika ORDER BY suma DESC LIMIT 1

To ci zwroci kolesia z max. podobnie masz zrbic z min, tylko zamiast desc daj asc

Mozna to chyba w jednym zapytaniu zrobic, ale teraz nie mam glowy do tego
cornholio666
Wszytsko fajnie tylko jak do tego dodać wartość minimalna?
LIMIT 1 chyba nie wchodzi w gre? Dlaczego przy zastosowaniu max(sub(cos)) wywala błąd?

Cytat
Invalid use of group function



Spróbowałem tak:

  1. SELECT id_pracownika, sum(kasa) suma FROM pracownik_info GROUP BY id_pracownika ORDER BY suma DESC LIMIT 1 UNION
  2. SELECT id_pracownika, sum(kasa) suma FROM pracownik_info GROUP BY id_pracownika ORDER BY suma ASC LIMIT 1


Ale tez nie idze.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.