Pobranie wartości jeśli tylko występuję w rekordach

0

Witam, mam dość nietypowe pytanie. Mam tablicę w bazie danych posiadającą kilka tysięcy rekordów, nie posiadają kluczy oraz indeksów. Przykład poniżej:

id_kategorii, parametr, nazwa_parametru, id_parametru, id_opcji_parametru
93074, producent-producent1, brak, brak, brak
93074, producent-producent2, brak, brak, brak
93074, producent-producent3, brak, brak, brak
93074, producent-producent4, brak, brak, brak
93074, , Stan, 11323, 11323_1
93074, , Marka, 129369, 129369_513517
93074, , Rodzaj rzęs, 15604, brak
1435, producent-producent1, brak, brak, brak
1435, vendor-producent1, Marka, 129369, 129369_529321
1435, , Stan, 11323, 11323_1

Czy jest możliwość by w zapytaniu pobrać id_opcji_parametru według nazwa_parametru 'Stan' tylko w takim przypadku gdy kategoria zawiera wyłącznie ten jeden parametr ?
Czyli pobierze wartość id_opcji_parametru według nazwa_parametru z id_kategorii 1435, nie biorąc pod uwagę id_kategorii 93074. Takich kategorii zawierających tylko nazwa_parametr='Stan' mam kilka i chciałabym tylko według nich pobrać id_opcji_parametru.

Dziękuję za wszelką pomoc.

4

Może szerzej opisz czym się różni:
93074, , Stan, 11323, 11323_1
Od
1435, , Stan, 11323, 11323_1
Bo tak to można by napisać coś w stylu

Select distinct `id_opcji_parametru` from Tabela where `nazwa_parametru` = 'Stan';

Wynikiem powinno być 11323_1 ale pobierane z obu wierszy.

0

@jurek1980: Jeśli chodzi o sam rekord to tylko różni się id_kategorii oraz tym że kilka rekordów dotyczy jednej kategorii, ale to chyba nie bardzo pomoże. Też próbowałam podobnym zapytaniem, ale bez distinct i otrzymywałam wszystkie id_opcji_parametru.

3

To może to id_kategorii jest z czymś innym powiązane np. w innej tabeli.

0

@jurek1980: Tak, id_kategorii jest powiązane z inną tabelą, w której zawarta jest kategoria allegro oraz kategoria innego sklepu

2

Ale da się tam jakiś filtr założyć? Albo inaczej czy w takim wypadku jak będziesz miała jedno id zwrócone zamiast powtarzania X razy to nie rozwiąże problemu?
Bo tak to ciężko coś więcej powiedzieć.

Inna rzecz, że wygląda to potencjalnie na coś co by wymagało mocnego refactoringu.

1

Ja czytałem to już kilka razy i nie rozumiem co chcesz osiągnąć...

Bo tłumacząc

Czyli pobierze wartość id_opcji_parametru według nazwa_parametru z id_kategorii 1435

To w zapisie SQL wygląda tak:

select id_opcji_parametru from tb where nazwa_parametru='stan' and id_kategorii = 1435

Takich kategorii zawierających tylko nazwa_parametr='Stan' mam kilka i chciałabym tylko według nich pobrać id_opcji_parametru.

To jest niezrozumiałe bo dla podanego przykładu kategoria 1435 ma 3 nazwy parametru brak, Marka, Stan.

0

@jurek1980: Spróbuję połączyć tabele by otrzymać id tych kategorii, może się uda. Jeśli będzie trzeba to założę filtr.

1 użytkowników online, w tym zalogowanych: 0, gości: 1