Veröffentlicht 11. Oktober 201113 j Guten Tag, ich habe eine Frage an Euch: kann man mit SQL eine Zelle auslesen, den Wert "speichern" mit dem anderen Wert ergänzen und erneut in die Zelle schreiben? =) z.b: möchte ich den wert "apfel" mit einem zweiten wert "birne" ergänzen: schritt (1): id...........wert.......... 01.........apfel......... schritt (2): id...........wert..... 01.........apfel, birne in meinem script habe ich eine reihe von "IFs" und wenn die bedingung erfüllt ist soll die zelle mit einem weitern wert ergänst werden. Geht es überhapt ( apfel, birne,, melone....) in einer zelle? mfg. dela
12. Oktober 201113 j Im Grunde ist es ja nur ein Update der Zellen. Problem wird sein, dass du mit den einzelnen Werten nicht mehr direkt arbeiten kannst, du müsstest sie am ", " wieder trennen. Ansonsten dürfte "Salami, Schinken, Käse, Teig, Tomaten" kein Problem darstellen.
12. Oktober 201113 j mir entzieht sich die Erkenntnis, wofür das gut sein soll was willst du damit erreichen? warum können diese Angaben nicht separat liegen? und wo kommen diese Daten her? woher weißt du, welche Daten du zusammenfügen musst?
12. Oktober 201113 j Also ich hoffe ich habe das richtig verstanden. ;-) Es müsste ca. so aussehen: UPDATE TABELLE T2 SET T2.WERT = (SELECT T.WERT || ', Birne' FROM TABELLE T WHERE T.ID = T2.ID) WHERE T2.ID = 1; Hoffe das passt ;-)
12. Oktober 201113 j z.b: möchte ich den wert "apfel" mit einem zweiten wert "birne" ergänzen:Ohne jetzt zu sehr auf Theoriekram rumreiten zu wollen: Sagt dir der Begriff "Normalisierung" etwas?
12. Oktober 201113 j Also ich hoffe ich habe das richtig verstanden. ;-) Es müsste ca. so aussehen: UPDATE TABELLE T2 SET T2.WERT = (SELECT T.WERT || ', Birne' FROM TABELLE T WHERE T.ID = T2.ID) WHERE T2.ID = 1; Hoffe das passt ;-) Ish, das aber unschön. UPDATE tbl set field = isnull(field + ',' , '') + 'birne' WHERE expressin das wäre syntaxtisch TSQL, unter z.b. Mysql müsstest du isnull durch ifnull() ersetzen. Klotzkopp hat allerdings absolut recht darin, dass man sowas normalerweise nicht tut, und es auch gute Gründe hat, so etwas nicht zu tun. Gruß Sven Bearbeitet 12. Oktober 201113 j von streffin
13. Oktober 201113 j Also der Sinn dahinter ist: - ich habe eine Tabelle mit Personen und deren Daten und mit einem Feld "Status" im Normalfall steht da nur "aktuell" - ich vergleiche diese regelmäßig mit einer anderen "Haupt-Tabelle" - und wenn sich etwas ändert z.B. Straße und PLZ dann soll im Feld Status (Straße, PLZ) stehen, damit man weiß welche Felder sich geändert haben - anschließend mach ich ein UPDATE.
13. Oktober 201113 j Außerdem wird beiM UPDATE der alte wert überschrieben! und will ihn behalten und etwas neues dranhängen=)
13. Oktober 201113 j weiß einer zufällig wie man aus 2 Tabellenin eine dritte schreibt ? ich möchte "id" aus tbl1 und "id" aus tbl2 in tbl3 speichern: $sql=mysql_query("insert into tbl3 (tbl1_id, tbl2_id) ........................................select id, id .........................................from tbl1, tbl2 .........................................where name = bob. das klappt schon mal nicht
13. Oktober 201113 j lese doch jeden einzelnen Datensatz aus Tabelle 1 aus, trage diese in Tabelle 3 ein, lese jeden Datensatz aus Tabelle 2 aus und trage auch diese in Tabelle 3 ein da diese Datenmigration eine einmalige Sache sein sollte, macht es keinen großen Unterschied, ob man das mit 1 oder 2 Abfragen löst zudem kann es ja sein, dass sich die beiden Tabellen Unterscheiden festlegen, welche Spalte in welche übernommen werden muss, musst du sowieso
13. Oktober 201113 j mit 2 abfrage habe ich auch 2 datensätze! ich will aber "id" aus der 1. tabelle und "id" aus der 2. tabelle in die 3. in einem datensatz.
13. Oktober 201113 j insert into tabelel3 (tbl1_id, tbl2_id) SELECT tbl1.id, tbl2.id FROM tabelle1 tbl1 inner join tabelle2 tbl2 ON [expression] WHERE [expression]
14. Oktober 201113 j insert into tabelel3 (tbl1_id, tbl2_id) SELECT tbl1.id, tbl2.id FROM tabelle1 tbl1 inner join tabelle2 tbl2 ON [expression] WHERE [expression] mir scheint es nicht so, als wolle er die Daten der beiden Tabellen verknüpfen, sondern nacheinander in die 3. Tabelle bringen zudem würden in dem Fall nicht zwingend alle datensätze übernommen werden
17. Oktober 201113 j warum steht denn da 2 mal "tabelle1 tbl1 inner join tabelle2 tbl2" wo ist der unterschied zwischen tabelle1 und t bl1? Und steffin hat mich schon richtig verstanden=) ich möchte "id" aus der 1. tabelle und "id" aus der 2. GLEICHZEITIG in die 3. schreiben, also in eine zeile.
17. Oktober 201113 j $sql=mysql_query("INSERT INTO heute_status (heute_id) SELECT id FROM heute WHERE id = '".$array[1]['attributes']['ID']."' && gültigkeit = '0000-00-00 00:00:00' "); $sql=mysql_query("INSERT INTO heute_status (status_id)VALUES ('1') "); kann man diese 2 statements in 1 zusammenfassen? denn so habe ich 2 einträge.
17. Oktober 201113 j schon ok, hab das problem jetzt gelöst: $sql=mysql_query("INSERT INTO tbl3 (id) SELECT id FROM tbl1 WHERE $id=mysql_insert_id(); $sql=mysql_query("UPDATE tbl3 SET id = '100' WHERE id = $id "); danke an alle! mfg. dela
19. Oktober 201113 j tabelle1 ist in dem Fall die Tabelle und tbl1 der alias, der dafür in der abfrage verwendet wird als Langform hätte man auch folgendes schreiben können: tabelle1 as "tbl1" ich bezweifle nach wie vor, dass das, was du vor hast, sinnvoll ist bzw. zu einem guten Datenbankdesign führt...
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.