Autor | Zpráva | ||
---|---|---|---|
radozaj Profil |
#1 · Zasláno: 22. 1. 2014, 22:36:02
Ahoj,
potrebujem poradiť so selectom. Mám 3 tabuľky: osoba(id_osoby) vlastnost(id_vlastnosti) vlastnost_osoby(id_osoby, id_vlastnosti, ma_ju) Moja úloha je vypísať osoby, čo majú naraz všetky požadované vlastnosti, napr. vlastnost 1 = true a zároveň vlastnost 5 = false a zároveň vlastnost 6 = false Ďakujem za rady. |
||
juriad Profil |
#2 · Zasláno: 22. 1. 2014, 22:37:20
Prakticky to samé je ve zdejších FAQ.
Některé časteji řešené dotazy pro MySQL - FAQ » Nalezení položek mající všechny hledané vlastnosti |
||
radozaj Profil |
#3 · Zasláno: 22. 1. 2014, 23:04:37 · Upravil/a: radozaj
Díki, skúsil som to. Mám postgres a vypisuje mi error: function count(integer, boolean) does not exist
Už to fičí. Pozeral som na tú variantu s 2 parametrami... originál having count(distinct ID_polozky, druh) = 2
správne having count(ID_polozky) = 2
Rovnako to funguje, keď namiesto ID_polozky dám druh, alebo ID_osoby, alebo *. Ale nefunguje, ak tam dám 2 stĺpce. No nevadí, problém vyriešený. Ďakujem moc :) |
||
juriad Profil |
#4 · Zasláno: 23. 1. 2014, 00:27:37
radozaj:
Důvod, proč to na Postgresu nefunguje: http://stackoverflow.com/questions/7286266/count-on-distinct-of-several-fields-work-only-on-mysql A v tom příkladu ta kontrukce opravdu má význam. Ve vašem případě je pouze jedna dimenze (id_vlastnosti), to zda bude true nebo false se řeší jen na úrovni kritérií (nikdy nenastane vlastnost1 = true and vlastnost1 = false). |
||
Kajman Profil |
#5 · Zasláno: 23. 1. 2014, 08:41:23
Pokud bude jedinečný klíč na kombinaci (ID_polozky, druh), stačí i obyčejné count(*).
|
||
Časová prodleva: 10 let
|
0