dela Geschrieben 11. Oktober 2011 Teilen Geschrieben 11. Oktober 2011 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Virus149 Geschrieben 12. Oktober 2011 Teilen Geschrieben 12. Oktober 2011 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Sacaldur Geschrieben 12. Oktober 2011 Teilen Geschrieben 12. Oktober 2011 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? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Stefan87 Geschrieben 12. Oktober 2011 Teilen Geschrieben 12. Oktober 2011 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 ;-) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 12. Oktober 2011 Teilen Geschrieben 12. Oktober 2011 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? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
streffin Geschrieben 12. Oktober 2011 Teilen Geschrieben 12. Oktober 2011 (bearbeitet) 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 2011 von streffin Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dela Geschrieben 13. Oktober 2011 Autor Teilen Geschrieben 13. Oktober 2011 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dela Geschrieben 13. Oktober 2011 Autor Teilen Geschrieben 13. Oktober 2011 Außerdem wird beiM UPDATE der alte wert überschrieben! und will ihn behalten und etwas neues dranhängen=) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dela Geschrieben 13. Oktober 2011 Autor Teilen Geschrieben 13. Oktober 2011 das problem hat sich erledigt, danke für eure Hilfe! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dela Geschrieben 13. Oktober 2011 Autor Teilen Geschrieben 13. Oktober 2011 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Sacaldur Geschrieben 13. Oktober 2011 Teilen Geschrieben 13. Oktober 2011 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dela Geschrieben 13. Oktober 2011 Autor Teilen Geschrieben 13. Oktober 2011 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
streffin Geschrieben 13. Oktober 2011 Teilen Geschrieben 13. Oktober 2011 insert into tabelel3 (tbl1_id, tbl2_id) SELECT tbl1.id, tbl2.id FROM tabelle1 tbl1 inner join tabelle2 tbl2 ON [expression] WHERE [expression] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Sacaldur Geschrieben 14. Oktober 2011 Teilen Geschrieben 14. Oktober 2011 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dela Geschrieben 17. Oktober 2011 Autor Teilen Geschrieben 17. Oktober 2011 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dela Geschrieben 17. Oktober 2011 Autor Teilen Geschrieben 17. Oktober 2011 $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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dela Geschrieben 17. Oktober 2011 Autor Teilen Geschrieben 17. Oktober 2011 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Sacaldur Geschrieben 19. Oktober 2011 Teilen Geschrieben 19. Oktober 2011 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... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.