Topic: Update, Left Join, Where

SELECT eco_points FROM members LEFT JOIN pfields_content ON members.member_id=pfields_content.member_id WHERE members.members_display_name = 'kubas'

Kaip sujungti sia uzklausa su update?

UPDATE pfields_content SET eco_points = '35' WHERE members_display_name = 'kubas'

Lentele:
pfields_content

Stulpeliai:
member_id
eco_points

Lentele:
members

Stulpeliai:
member_id
members_display_name

Re: Update, Left Join, Where

Kokia logika selecta sujungti su update?
Tiksliau kodel pagal tave atliekant informacijos paemima, dar turi buti ir informacijos atnaujinimas?

P.S. Cia kazkaip prasilenkiama su logika.

P.P.S. userius db reiktu identifikuoti pagal unikalu id, o ne pagal varda ar nick'a

Re: Update, Left Join, Where

http://dev.mysql.com/doc/refman/5.5/en/update.html

4 (edited by kropto 2011-09-08 10:33:24)

Re: Update, Left Join, Where

Select nereikes, man reikia paimti ID numeri is members lenteles ir sutikrinti su pfields_content lenteles member_id  kad galeciau daryti update. Nzn kazkas tokio. Identifikavimas yra geras koks yra.

UPDATE pfields_content SET pfields_content.eco_points = '35' FROM members LEFT JOIN pfields_content ON members.member_id=pfields_content.member_id WHERE members.members_display_name = 'kubas'

Re: Update, Left Join, Where

Nuorodoje, kurią daviau, yra parašya, kaip UPDATE komandoje apjungti kelias lenteles.

Re: Update, Left Join, Where

"UPDATE pfields_content LEFT JOIN members ON pfields_content.member_id=members.member_id SET pfields_content.eco_points = '%d' WHERE members.members_display_name = '%s'"

Kazkas cia man vistiek neatnaujina eco_points.

Re: Update, Left Join, Where

O kodėl pas tave LEFT JOIN'as?

Re: Update, Left Join, Where

Todėl kad pfields_content  nera vardu man reikia pagal varda identifikuoti, tam reikia isgauti member_id is members lenteles. Veliau pagal ta member_id  tikrinti pfields_content  lenteleje ir daryti update.

Re: Update, Left Join, Where

kropto wrote:

Todėl kad pfields_content  nera vardu man reikia pagal varda identifikuoti, tam reikia isgauti member_id is members lenteles. Veliau pagal ta member_id  tikrinti pfields_content  lenteleje ir daryti update.

Na aš klausiau kodėl pas tave LEFT JOIN'as, o ne INNER JOIN'as.
(o ne kodėl LEFT JOIN aplamai).

Bet kuriuo atveju - su SELECT'u turi patikrinti ar tikrai viską atrenka taip kaip reikia.
O jeigu nori kad kažkas surastų klaidą, tai turi pateikti tiek duomenis, kaip jie atrodo, tiek ką atrenka SELECT'as, ir pakomentuoti UPDATE užklausos rezultatą - gal kokia klaida gaunama?

Re: Update, Left Join, Where

As nezinau kaip veikia LEFT JOIN ar INNER JOIN, man reikia kad kas parasytu uzklausa kaip turi buti, galima ir su select daryt jog matyciau ar yra klaida ar ne.

Nenoriu dvieju atskiru uzklausu select ir tik toliau daryt update.

Re: Update, Left Join, Where

kropto wrote:

As nezinau kaip veikia LEFT JOIN ar INNER JOIN

Na tai yra puiki proga sužinot, juolab, kad tau to reikia.

kropto wrote:

galima ir su select daryt jog matyciau ar yra klaida ar ne

Tai taip ir padaryk. Mes juk neturim tavo duomenų, kad galėtumėm matyti ar teisingai duomenis išrenka ar ne. O dėl tokios smulkmenos rankom kurtis lentelę ir daryti eksperimentus neapsimoka - tau pačiam lengviausia tai atlikti savo duomenų bazėje.

kropto wrote:

Nenoriu dvieju atskiru uzklausu select ir tik toliau daryt update

SELECT paleisti reikia tik tam, kad matyti ar teisingai išrenka duomenis.

Re: Update, Left Join, Where

to kropto: gal tu geriau pasakyk ka konkreciai nori padaryti, nes tikslus tikslas turi didelia itaka galutiniam sprendimui.

P.S. tai kad viska padarai per viena mysql_query requesta, tai dar nereiskia, kad realiai viska padarai tik su viena uzklausa. (-;

Re: Update, Left Join, Where

Na sprendimas iš principo geras, tik jis nori, kad kažkas kitas už jį parašytų užklausą ir/arba padėtų surasti kodėl neveikia jo paties parašyta užklausa nepateikdamas reikiamos informacijos.

Re: Update, Left Join, Where

na tau tada pasiseke jei pavyko suprasti ko jis istikro nori :)

Re: Update, Left Join, Where

    ...............................................
...................................

        new szName[33] 
    get_user_name(id, szName, charsmax(szName)); //gaunamas vardas

         new Handle:query = SQL_PrepareQuery(sql, "SELECT member_id FROM a0f6Ej46D_members WHERE members_display_name = '%s'", szName); // gaunamas unikalus id numeris pagal varda
    
    if (!SQL_Execute(query))
        SQL_QueryError(query, error, 127)
    
    new member_id
    
    if(SQL_NumResults(query))
        member_id = SQL_ReadResult(query, 0) // unikalus id numeris
    
    new Handle:iquery = SQL_PrepareQuery(sql, "UPDATE a0f6Ej46D_pfields_content SET eco_points = '5' WHERE member_id = '%d'", member_id); //update uzklausa pagal unikalu id


.....................................
........................

Sutrumpinti man reikia, kad nereiktu kurti atskirai kintamojo gauti unikalu id