Topic: Labai Reikia Pagalbos

Turiu toki dalyka:

1 lentele:

Vardas       |      Unikalus kodas
-------------------------------------
Petras        |      789123
Jonas         |      123789

2 lentele:

Numeris     |      Unikalus kodas       |      Data
------------------------------------------------------
1               |         123789               |      2009
2               |         123789               |      2009
3               |         789123               |      2009
4               |         789123               |      2009

Kokio mysql query reikia kad pridetu i antra lentele numeri 5, (kad didetu skaicius pastoviau nereiktu jo vis perrasinet) , o unikalus kodas butu pagal varda?
Prasau, labai reikia pagalbos :/

Re: Labai Reikia Pagalbos

Nelabai supratau klausimo.

Pirma dalis lyg aiški: reikia įterpti įrašą, taip, kad Numeris, automatiškai didėtų? Tokiu atveju reikia modifikuoti duomenų schemą: padaryti, kad stulpelis Numeris būtų PRIMARY_KEY ir uždėti ant jo AUTO_INCREMENT. Tada INSERT užklausoje nenurodęs nei stulpelio nei reikšmės gausi automatinę reikšmę. O antros klausimo dalies nesuprantu ką reiškia "o unikalus kodas butu pagal varda"? Gal, kad duomenis reikia imti iš pirmos lentelės iį juos įterpti į antrąją? Nežinau (-; Negaliu spėliot.

3 (edited by alien 2009-05-15 11:29:10)

Re: Labai Reikia Pagalbos

pirma dali dekui, sutvarkiau, o antra dalis reikia kad is pirmos lenteles paimtu unikalu koda, ir irasytu i antra lentele, o koda ta paimtu pagal varda, na ten kaip INSERT INTO lentele2 VALUES ('numeris', unikalus kodas', 'data'); bet kad unikalu koda imtu pagal varda, nzn kaip ta padaryt

Ir beja ka reikia rasyt kad jis didetu? numeris, INSERT INTO lentele2 VALUES ('???',......);

Re: Labai Reikia Pagalbos

alien wrote:

pirma dali dekui, sutvarkiau, o antra dalis reikia kad is pirmos lenteles paimtu unikalu koda, ir irasytu i antra lentele, o koda ta paimtu pagal varda, na ten kaip INSERT INTO lentele2 VALUES ('numeris', unikalus kodas', 'data'); bet kad unikalu koda imtu pagal varda, nzn kaip ta padaryt

Aš nelabai suprantu tos vietos "pagal varda"? Parodyk koks turi būti rezultatas, ir patikslink ar apie išrinkimą ar apie įterpimą kalbi?

alien wrote:

Ir beja ka reikia rasyt kad jis didetu? numeris, INSERT INTO lentele2 VALUES ('???',......);

Kaip ir rašiau, reikia uždėti atributą AUTO_INCREMENT, bet tas stulpelis būtinai turi būti pirminis raktas (PRIMARY_KEY).

Re: Labai Reikia Pagalbos

minde wrote:
alien wrote:

pirma dali dekui, sutvarkiau, o antra dalis reikia kad is pirmos lenteles paimtu unikalu koda, ir irasytu i antra lentele, o koda ta paimtu pagal varda, na ten kaip INSERT INTO lentele2 VALUES ('numeris', unikalus kodas', 'data'); bet kad unikalu koda imtu pagal varda, nzn kaip ta padaryt

Aš nelabai suprantu tos vietos "pagal varda"? Parodyk koks turi būti rezultatas, ir patikslink ar apie išrinkimą ar apie įterpimą kalbi?

alien wrote:

Ir beja ka reikia rasyt kad jis didetu? numeris, INSERT INTO lentele2 VALUES ('???',......);

Kaip ir rašiau, reikia uždėti atributą AUTO_INCREMENT, bet tas stulpelis būtinai turi būti pirminis raktas (PRIMARY_KEY).

Parasei tapati ka as jau rasiau kad zinau, man nereikia nieko nustatyt, man reikia reiksmes... nu as nesupratu kaip nesuprast dar galima.....

dar karta pakartosiu , issiskaityki gerai.


=====================
yra 2 lenteles

=====================

1 lentele:
Vardas       |      Unikalus kodas
-------------------------------------
Petras        |      789123
Jonas         |      123789

=====================


2 lentele:
Numeris     |      Unikalus kodas       |      Data
------------------------------------------------------
1               |         123789               |      2009
2               |         123789               |      2009
3               |         789123               |      2009
4               |         789123               |      2009



=====================
man reikia mysql query, kad papildyt 2 lentele.
Reikia kad padidetu skaicius, tada isirasytu unikalus kodas, ir data (ji nera svarbi, gali but betoks skaicius)

Dar asiskiau: man reikia yraso i .sql faila, eilutes, INSERT INTO lentele2 VALUES...................
Values turetu buti tokie, kad 'Numeris' butu vienetu didesnis uz didziausia,  'Unikalus kodas' turetu buti toks koks yra pirmoje lenteleja prie 'Vardas' , o data nera svarbu., i ta stulpeli galima nekreipt demesio, esme butu tokia, kad prisidetu papildoma eilute antroje lenteleja , atsizvelgiant i pirmos lenteles stulpeli 'Vardas' , paimt eilute (pagal vardas reiksme) , is tos eilutes paimt  unikalu ID, ir irasyt i antra lentele.

Aiskiau manau neimanoma pasakyt :/

Re: Labai Reikia Pagalbos

Bet tu supranti, kad pirmoje lentelėje tų vardų yra daug, ir kurį konkrečiai imti įrašą? Jeigu kalba eina apie visų stulpelio "Unikalus kodas" reikšmių įterpimą į iš pirmos lentelės į antrąją tada viskas ok, bet nereikia painioti vardo, nes jis šiame procese nedalyvautų. Ir tai atrodytų maždaug taip:

INSERT INTO lenta_2 (laukas_2)
    SELECT lenta_1.laukas1
    FROM lenta_1

O dėl numerio jau parašiau 2 kartus, manau susigaudysi.

Re: Labai Reikia Pagalbos

man reikia nevisus, o konkretu 1, ir nevarda o unikalu koda kuri turi vardas

Re: Labai Reikia Pagalbos

alien wrote:

man reikia nevisus, o konkretu 1, ir nevarda o unikalu koda kuri turi vardas

Tai tada reikia darašyti .. WHERE Vardas = 'Kazkoks_konkretus_vardas'

9 (edited by alien 2009-05-15 14:01:47)

Re: Labai Reikia Pagalbos

INSERT INTO antroji (unikalus kodas) WHERE vardas = 'jonas'
    SELECT pirmoji.unikalus kodas
    FROM pirmoji

=========================================

pirmoji - pirma lentele
antroji - antra lentele
unikalus kodas - kodas kuri reikia kopijuoti is pirmos i antra
jonas - test vardas

=========================================

rezultatas:

[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'kodas) WHERE vardas = 'jonas'
    SELECT pirmoji.unikalus kodas' at line 1
[Err] INSERT INTO antroji (unikalus kodas) WHERE vardas = 'jonas'
    SELECT pirmoji.unikalus kodas
[Msg] Finished - Unsuccessfully

Re: Labai Reikia Pagalbos

alien wrote:

INSERT INTO antroji (unikalus kodas) WHERE vardas = 'jonas'
    SELECT pirmoji.unikalus kodas
    FROM pirmoji

=========================================

pirmoji - pirma lentele
antroji - antra lentele
unikalus kodas - kodas kuri reikia kopijuoti is pirmos i antra
jonas - test vardas

=========================================

rezultatas:

[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'kodas) WHERE vardas = 'jonas'
    SELECT pirmoji.unikalus kodas' at line 1
[Err] INSERT INTO antroji (unikalus kodas) WHERE vardas = 'jonas'
    SELECT pirmoji.unikalus kodas
[Msg] Finished - Unsuccessfully

Jeigu naudoji stulpelių/lentelių pavadinimus ne vien lotyniškas raides, o ir kitus simbolius - kaip šiuo atveju tarpus, tai tuos pavadinimus turi apskiausti atgalinėmis viengubomis kabutėmis.

Re: Labai Reikia Pagalbos

jei gali suformuluok dar karta sql koda, tik su WHERE vardas = 'vardas' , nes kad ir kaip meginu vis eror gaunu.
P.S. pakeiciau stulpeli unkilaus kodas, i unikalus_kodas

Re: Labai Reikia Pagalbos

Matai, aš rašyti užklauses kiek man reikia moku, o tau dar reikia pasimokyti, todėl rašyk tu, o mes bandysim pagelbėt taisydami klaidas.

Re: Labai Reikia Pagalbos

Ech :/ apsunkini viska.... nu gerai...

Pakeiciau unikalus_kodas i kodas - bus paprasciau dabar.

INSERT INTO antroji (kodas)
    SELECT pirmoji.kodas
    FROM pirmoji

paleidus sita, gaunu eror:

[Err] 1054 - Unknown column 'pirmoji.kodas' in 'field list'
[Err] INSERT INTO antroji (kodas)
    SELECT pirmoji.kodas
[Msg] Finished - Unsuccessfully


, jei padarau siektiek kitaip -

INSERT INTO antroji (kodas) WHERE vardas = 'jonas'
    SELECT pirmoji.kodas
    FROM pirmoji

gaunu error:

[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE vardas = 'jonas'
    SELECT pirmoji.kodas' at line 1
[Err] INSERT INTO antroji (kodas) WHERE vardas = 'jonas'
    SELECT pirmoji.kodas
[Msg] Finished - Unsuccessfully

Re: Labai Reikia Pagalbos

Tai man atrodo pas tave lentelės ir stulpeliai kitaip vadinasi negu tu rašai. Sutvarkyk vardus..

Re: Labai Reikia Pagalbos

Pasiknisau google ir mysql.com manualuose, ir susitvarkiau ^^
klaida buvo didziosios raides, ir vienodi stulpeliu pavadinimai.

Veikiantis kodas:

INSERT INTO antroji (kodasx)
  SELECT pirmoji.kodas
  FROM pirmoji where vardas='jonas';


dq uz pagalba :) lock theme

16 (edited by alien 2009-05-15 16:37:03)

Re: Labai Reikia Pagalbos

Beja, kaip padaryt kad tas pats kodas dar dadetu VALUES i data ar dar kokius stulpelius nekintamas reiksmes???

Re: Labai Reikia Pagalbos

vat pavizdziui man reikia kad tas pats kodas i ta pacia eilute tik i kita stulpeli, irasytu %Data% , kaip man padaryt ta? kad ir kaip bandaug prirasyt papildomai ten kazka gaunasi kose ir meta eror