Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] Co w MySQL zamiast MINUS?
Forum PHP.pl > Forum > Przedszkole
avoninfo
potrzebuję takiego zapytania w MySQL:

  1. SELECT braki.kod AS qqq, kody.nazwa AS www
  2. FROM dostawy,
  3. braki, kody
  4. WHERE DATE_SUB('$data',INTERVAL 14 DAY)<=data_dostawy AND DATE_ADD('$data',INTERVAL 7 DAY)>=data_dostawy AND braki.dostawa=dostawy.id AND braki.kod=kody.kod AND braki.typ!='Dostalam' AND braki.typ!='Nie zamawialam'
  5. GROUP BY qqq


MINUS

  1. SELECT braki.kod AS qqq, kody.nazwa AS www
  2. FROM dostawy,
  3. braki, kody
  4. WHERE DATE_SUB('$data',INTERVAL 14 DAY)<=data_dostawy AND DATE_ADD('$data',INTERVAL 7 DAY)>=data_dostawy AND braki.dostawa=dostawy.id AND braki.kod=kody.kod AND braki.typ!='Dostalam' AND braki.typ!='Nie zamawialam' AND dostawy.czyja='$_SESSION[id]'
  5. GROUP BY qqq


jak je zapisać?
TomASS
Musisz zanegować to co jest odejmowane i zamienić AND na OR:
  1. SELECT braki.kod AS qqq, kody.nazwa AS www
  2. FROM dostawy,
  3. braki, kody
  4. WHERE DATE_SUB('$data',INTERVAL 14 DAY)<=data_dostawy AND DATE_ADD('$data',INTERVAL 7 DAY)>=data_dostawy AND braki.dostawa=dostawy.id AND braki.kod=kody.kod AND braki.typ!='Dostalam' AND braki.typ!='Nie zamawialam' AND !(DATE_SUB('$data',INTERVAL 14 DAY)<=data_dostawy ORDATE_ADD('$data',INTERVAL 7 DAY)>=data_dostawy OR braki.dostawa=dostawy.id ORbraki.kod=kody.kod OR braki.typ!='Dostalam' OR braki.typ!='Nie zamawialam' OR dostawy.czyja='$_SESSION[id]')
  5. GROUP BY qqq
avoninfo
Niestety, nie ma tak pięknie:(.

GROUP BY nie da sie tak łatwo obejśc.

o co mi chodzi: przyjmijmy, że mam jedną tabelę

braki:
kod, wlasciciel
1 A
1 B
2 A
3 B
3 C
3 D
5 D
6 D
6 E
7 F

w wyniku zapytania ktorego wejsciem jest jakis WŁAŚCICIEL chciałbym otrzymać wiersze, z takim polem kod , aby ten kod nie był nigdy z polem właściciel= WŁAŚCICIEL

wyjście ( dla WŁAŚCICIEL = D):

kod. wlasciciel
1 A
1 B
2 A
7 F

najlepiej DISTINCT.
czyli:
kod.
1
2
7
TomASS
Albo jest już za późno, albo jestem za głupiutki..... czy nie da się tego zrobić tak:
  1. SELECT kod
  2. FROM tabela
  3. WHERE wlasciciel!='D' GROUP BY kod ORDER BY kod DISTINCT;
avoninfo
Mam już to zrobione - 2 zapytania i php (NOT IN piewsze_zapytanie)


a wynik proponowanego przez Ciebie rozwiązania to:


KOD:
1
2
3
6
7


dzięki za zainteresowanie smile.gif
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.