![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 281 Pomógł: 0 Dołączył: 8.07.2005 Skąd: EU Ostrzeżenie: (0%) ![]() ![]() |
Witam,
nie radzę sobie z pewnym problemem, może ktoś zasugerować rozwiązanie tabela z wiadomościami: --------------------------------- odbiorac | nadawca | flaga | --------------------------------- w której znajdują się rekordy 1 | 2 | 0 1 | 2 | 0 1 | 2 | 0 5 | 6 | 0 5 | 6 | 0 5 | 6 | 0 zapytanie select * from tabela group by odbiorca , nadawca wynik będzie taki: 1 | 2 | 0 5 | 6 | 0 i tu sie zaczyna problem, jak skonstruować zapytanie tak aby w przypadku gdy np jeden z rekordów ma flagę ustawioną na 1 np 1 | 2 | 0 1 | 2 | 1 1 | 2 | 0 5 | 6 | 0 5 | 6 | 0 5 | 6 | 0 dał taki wynik: 5 | 6 | 0 czyli dalej pogrupować rekordy wg odbiorcy i nadawcy ale pominąć grupę rekordów jak wystąpi w niej chociaż raz flaga 1 jak powyzej, w tabeli znajdują się 3 rekordy 1 | 2 ale tylko jeden ma flage ustawioną na 1 i to ma spowodować że cała grupa rekordów 1 | 2 ma zostać pominięta w wyniku czy da się to jakoś zrobić z góry dzięki pozdrawiam |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Spróbuj dodać
@trueblue dał poprawne rozw. (IMG:style_emoticons/default/smile.gif) Ten post edytował Pyton_000 23.02.2016, 09:00:42 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
select * from tabela group by odbiorca,nadawca having sum(flaga)=0
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 281 Pomógł: 0 Dołączył: 8.07.2005 Skąd: EU Ostrzeżenie: (0%) ![]() ![]() |
super ogromne dzięki
a jak by zmodyfikować to zapytanie aby wynik dał zawsze rekordy bez duplikatów odbiorcy tabela zawiera takie rokordy: 1 | 2 | 0 1 | 2 | 1 1 | 2 | 0 5 | 6 | 0 5 | 6 | 0 5 | 6 | 0 1 | 3 | 0 1 | 3 | 0 1 | 4 | 0 1 | 4 | 0 i w wyniku nie chce miec tych grup które mają przynajmniej jedną flagę ustawioną na 1 ( tak jak podałeś w poprzedniej odpowiedzi) ale dodatkowo chciałbym w wyniku otrzymać rekordy bez duplikatów odbiorcy, coś takiego: 5 | 6 | 0 1 | 3 | 0 wynik nie uwzględnia rekordu 1 | 4 | 0 bo już jest jeden rekord z nadawcą 1 albo 5 | 6 | 0 1 | 4 | 0 wynik nie uwzględnia rekordu 1 | 3 | 0 bo już jest jeden rekord z nadawcą 1 i tak dalej bez znaczenia ile jest tych rekordów, wynik ma podawać tylko jeden rekord z nadawcą (bez duplikatów) ? z góry dzięki pozdrawiam |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 281 Pomógł: 0 Dołączył: 8.07.2005 Skąd: EU Ostrzeżenie: (0%) ![]() ![]() |
dzięki za odpowiedź
interesuje mnie i odbiorca i nadawca mając taką tabele 1 | 2 | 0 1 | 2 | 1 1 | 3 | 0 1 | 3 | 0 1 | 4 | 0 1 | 4 | 0 1 | 4 | 0 1 | 5 | 0 1 | 5 | 0 powinienem otrzymac: tylko jeden rekord np. 1 | y | 0 gdzie y może być 3, 4 albo 5 a ile to będzie w wyniku to dla mnie nie ma znaczenia chyba to trzeba pogrupować wg pierwszej i drugiej kolumny, uwzglednic flage i usunac duplikaty z kolumny pierwszej ? Ten post edytował yalus 23.02.2016, 12:39:31 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 281 Pomógł: 0 Dołączył: 8.07.2005 Skąd: EU Ostrzeżenie: (0%) ![]() ![]() |
trudno jest opisać dokładnie o co mi chodzi
ale spróbuje jeszcze raz tabela: --------------------------------- nadawca | odbiorca | flaga | --------------------------------- rekordy: 1 | 2 | 0 1 | 2 | 1 1 | 3 | 0 1 | 3 | 0 1 | 3 | 0 1 | 4 | 0 1 | 4 | 0 1 | 5 | 1 i teraz chciałbym wyciągnąć dowolnego odbiorce z grupy nadawcy przy uwzględnieniu flagi 0 wynik powinien być dokładnie tylko jeden rekord np. 1 | 3 | 0 albo 1 | 4 | 0 odbiorcy 2 i 5 muszą być pominięci bo flaga w tej grupie to 1 ogromne dzięki za dotychczasową pomoc |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 281 Pomógł: 0 Dołączył: 8.07.2005 Skąd: EU Ostrzeżenie: (0%) ![]() ![]() |
super!
ogromne dzięki, nawet mi takie rozwiązanie błysło w myślach ale nie poszedłem tym tropem myślałem żeby wynik z pierwszego zapytania załadować do tablicy php i tam usunąc te duplikaty (IMG:style_emoticons/default/wink.gif) ) (IMG:style_emoticons/default/oneeyedsmiley02.png) dzięki jeszcze raz pozdrawiam |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 19:03 |