[MySQL] Update met een join

Pagina: 1
Acties:

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Topicstarter
Is het mogelijk om een update te doen met een Join?

bv kan dit?
PHP:
1
<?$sql  ="update fin_cell set seq =  seq + 1 where";$sql .=" fin_cell.seq > ".$c["seq"]. " and fin_table.tblid = ".$_SERVER['HTTP_TABLEID'];$sql .=" and fin_row.rowid = ". $c["rowid"];$sql .=" and fin_cell.rowid = fin_row.rowid and fin_table.tblid = fin_row.tblid";?>

Alle variablen in deze query zijn intergers. :)

ik kan hem natuurlijk wel loslaten op de db maar als het fout gaat krijg ik ruzie met de medeontwikkelaars. En moet ik weer eens de backup terug zetten... En dat willen we niet..

Programmer - an organism that turns coffee into software.


Verwijderd

is het dan niet makkelijker om een testdatabase(je) te maken?

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Topicstarter
hmm.. :)

dat is natuurlijk ook een mogelijk heid... een test versie van de test database :)

:o :o :o

Programmer - an organism that turns coffee into software.


Verwijderd

nouja ...dan hoef je iig geen backup terug te zetten ..of rekening te houden met je collega's :)

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Topicstarter
"unkown table fin_table "

Dat was op zich te verwachten... :(

Iemand hoe ik dit binnen MySQL kan oplossen? of moet ik toch echt het via PHP doen?

Programmer - an organism that turns coffee into software.


  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 23:32

thomaske

» » » » » »

Op woensdag 15 mei 2002 17:41 schreef LuCarD het volgende:
Iemand hoe ik dit binnen MySQL kan oplossen? of moet ik toch echt het via PHP doen?
je kan toch gewoon de query uitvoeren in de mysql shell

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

dit is geloof ik een zgn multitable update, dat kan iig nog niet in mysql :)

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Topicstarter
Op woensdag 15 mei 2002 21:41 schreef ACM het volgende:
dit is geloof ik een zgn multitable update, dat kan iig nog niet in mysql :)
Maar ik update toch maar 1 tabel... :7 de rest is gewoon voor de selectie....

Nadeel van normalisatie... :(

Programmer - an organism that turns coffee into software.


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op woensdag 15 mei 2002 21:42 schreef LuCarD het volgende:
Maar ik update toch maar 1 tabel... :7 de rest is gewoon voor de selectie....
Helaas, in een 'echte' database zou je zoiets met een subquery oplossen...

In mysql moet je daarvoor moeilijk doen...

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Topicstarter
Op woensdag 15 mei 2002 22:16 schreef ACM het volgende:

[..]

Helaas, in een 'echte' database zou je zoiets met een subquery oplossen...

In mysql moet je daarvoor moeilijk doen...
* LuCarD gaat maar eens moeilijk doen..... :(

Ow wacht ik doe altijd moeilijk .... :+

Programmer - an organism that turns coffee into software.


  • Erik Jan
  • Registratie: Juni 1999
  • Niet online

Erik Jan

Langzaam en zeker

Nog even voor de compleetheid, multi-table updates voor MySQL staan gepland in MySQL 4.1, dus het is niet overbodig om je scripts alvast voor te bereiden :)

This can no longer be ignored.


  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Topicstarter
Voor het geval mensen hier komen met de search.... Het is dus nog niet gelukt en ik heb het dus als volgt op gelost.

via PHP op gelost.
PHP:
1
<?$sql  = " select celid from fin_cell";    $sql .= " inner join fin_row on fin_cell.rowid = fin_row.rowid ";    $sql .= " inner join fin_table on fin_row.tblid = fin_table.tblid ";    if ($_SERVER['HTTP_TABLELOC']) {        $sql .= " where fin_cell.seq > ".$c["seq"]. " and ";        $sql .= " fin_table.tblid = ".((int)$_SERVER['HTTP_TABLEID'])." and";        $sql .= " fin_row.rowid = ". $c["rowid"];    }    else {        $sql .= " where fin_cell.seq >= ".$c["seq"]. " and ";        $sql .= " fin_table.tblid = ".((int)$_SERVER['HTTP_TABLEID'])." and";        $sql .= " fin_row.rowid = ". $c["rowid"];    }    $mysql->do_query($sql);    while(list($cellid)=$mysql->fetch_array(true)) {        $in .= $cellid. ",";    }    $sql="update fin_cell set seq =  seq + 1 where fin_cell.celid in (". $in ."0)";    $mysql->do_query($sql);?>

Programmer - an organism that turns coffee into software.

Pagina: 1