podiveh s Mysql

8 отговора 402 прегледа
#1

podiveh s Mysql

ot niakolko dena se guzia s edno chudo i podiveh da mu se nevidi, nachi
imam 3 tablici
1. userinfo
-------------
userid
categoryid
------------
sadurja userid i id na categoria kum koiato toi se otnasia

2. categories
----------------
categoryid
name
---------------
sadurja idto na catogoria i imeto j, naprime "muj","jena", "slon"
3. definitions
----------------
userid
categoryid
----------------
sadurja definicia za tursene naprimer
userid=1 tursi neshto ot catid=1
userid=1 tursi neshto ot catid=2
userid=3 tursi neshto ot catid=2

stava duma za profile sensitive tursene, ili s populiarni neshta:
userid=1, jena tursi slon
userid=2, muj tursi jena
userid=2, muj tursi slon
userid=3, slon tursi muj, maimuna
userid=4, maimuna tursi jena

kato rezultat ot query triabva da polucha spisak ot useridta koito otgovariat ne samo na kriteriite na turseshtia no i turseshtia da otgovaria na kriteriite im, kato za onia primer
za userid1=1 - niama rezultat
userid2 - > rezultat userid=3
userid3 - rezultat userid=2
userid=4 niama rezultat

kak da go napravia maa u ... sburkah se veche ... koito mi podskaje edno chitavo reshenie napravo shte go udavia v alkohola. (ne se sheguvam) :))

Отговор
в отговор на akaRider #2

Re: podiveh s Mysql ?? ili SQL ??

Я излез на IRC да го обсъдим
bgirc.net - #mysql

Обясни малко по-подробно, че не схванах идеята. Какво точно и разликата между таблици user и definitions?
Така както си ги описал значи ли, че всеки user има само една категория обаче може да търси в повече от една? Т.е. ако съм те разбрал правино имаш
Потребител -> Категория (1 към 1)
Потребител -> Категория За Търсене (1 към много)

Ако не е така дообясни. Ако Отношението Потребител->Категория ти е 1 към Много тогава нещата са други естествено

В тази връзка като даваш пример винаги казвай кое ти е Primary Key - това доста изяснява нещата.

Например за твоята таблица горния въпрос е:
userinfo
-------------
userid
categoryid
PK(userid)
както ми се струва

Или
userinfo
-------------
userid
categoryid
PK(userid, categoryid)



При всички случаи за да си дефинираш точно търсенето се концентрирай върху последната таблица защото в нея е описано кой какво търси.

>kato rezultat ot query triabva da polucha spisak ot useridta koito otgovariat ne samo na kriteriite na turseshtia no i...


А какви биха могли да бъдат критериите на търсещия?
Важно е всъщност. Щото дотук си поискал таблица със всички и всичко - а това съм сигурен, че можеш да го извазиш :)
Кажи го с думи прости на чист български - нататък е лесно

Linux is like a wigwam - No Windows, No Gates, Apache inside
Отговор
в отговор на salle #3

Re: podiveh s Mysql ?? ili SQL ??

pravilno si me razbral,
edin user moje da bude samo v edna kategoria, no moje da iska kontakt s drugi useri koito da sa ot razlichni kategorii (za tova e 3ta tablica).

Stava duma za site za zapoznavstva.

Ako az sum jena iskam da imam konakti s muj ili dvoika koiato tursi jena

v tozi sluchai az niama da popadna v rezultat ot turseneto na muj koito tursi dvoika koiato tursi muj, no shte popadna v turseneto na dvoika koiato tursi jena ili v turseneto na muj koito tursi jena.

V petak mi triabvaha 3 biri dokato uspiah da go obiasnia i 2 lista hartia :))

Отговор
в отговор на akaRider #4

Re: podiveh s Mysql

Izpuskash edna vazmojnost edna tablitsa da ya izpolzvash niakolko puti vuv FROM

SELECT
u1.userid, u2.userid
FROM
userinfo u1, userinfo u2, categories c, definitions d
WHERE
u1.categoryid=c.categoryid AND
d.userid=u2.userid AND
d.categoryid=u1.categoryid

tova e samo hint, dovarshi si ideata sam - krayniyat variant sigurno shte izglejda malko po-dulug s OR-ove i AND-ove

Отговор
в отговор на akaRider #5

Re: podiveh s Mysql ?? ili SQL ??

Ех да му се не види
Напразно си хабил хартията.
Бирата никога не е напразно

Значи задачката се формулира така:
1. Влизам аз userid = 65
2. Искам списък на всички user_id (другите данни после), за които:
def_cat_id = мойта cat_id - така ли е?

т.е.
select d.user_id from user u, def d where u.user_id = 65 and u.cat_id = d.cat_id;

дотук така ли е?

ти си наред

Linux is like a wigwam - No Windows, No Gates, Apache inside
Отговор
в отговор на salle #6

Re: podiveh s Mysql ?? ili SQL ??

iskam userid na tezi kadeto moia catid e v tehnia def i tiahnoto catid da e v moia def

... birata ne svurshva .. BTW


abe ... are da se vidime sled rabotnoto vreme niakde iz centara na niakoe kruchme ta da razchoplime tupotiata. Po burzo shte stane + s polza za organizma i nastroenieto

Отговор
в отговор на akaRider #7

Re:beer++ :)

salle@online.bg
icq: 10443218

Linux is like a wigwam - No Windows, No Gates, Apache inside
Отговор
в отговор на akaRider #8

Re: podiveh s Mysql ?? ili SQL ??

Нали ти написах решение. Сигурен съм, че изкарва точно това което искаш...

Отговор
в отговор на netKo #9

Re: podiveh s Mysql ?? ili SQL ??

10x, mai baca... ama ne mi se igrae da vidia dali baca kato hora che triabva da se turkaliam iz suma ti page-ove ta da promeniam setup-a .. kat se natrupat niakolko hiliadi usera shte vidime kak shte revat za cialata rabota.

10x 4 All... sus salle se ogovorihem za izuchavaneto na beer++ ... ostava i s teb :))
a i mislia v sredata na sedmica da mina prez ofisa ti na kulturno poseshtenie :)

Отговор