Zum Inhalt springen

Probleme bei Implementierung einer mysql database


morris_m

Empfohlene Beiträge

Hey,

ch moechte mal fragen ob jemand mir helfen koennte mein script fertig zu bringen

Ich moechte eine mysql Abfrage die alle Daten von einer Tabelle AGENTUR an hand einer Spalte firma eindeutig einem USER über die agentur.id zuweist ...die neue dafür verwendete spalte in der user tabelle könnte user.agentur_update heißen

dh. in die neue spalte agentur_update beinhaltet dann die id der entsprechenden agentur, die spalte firma können wir dann aus der user tabelle entfernen und hätten immernoch die referenzierung über agentur um an die daten zu kommen.

Here is der Agentur script,die ich gebastelt habe.

CREATE TABLE agentur(id_firma INT(11), firma VARCHAR(25));

SELECT * FROM test.user LEFT JOIN test.agentur ON user.id_firma = agentur.id_firma;

Dann hab ich diese Tabelle bekommen. -------+------------+----------------------------------+--------+----------+-------+ | id | id_firma | vorname | nachname | strasse | plz | wohnort | email | passwort | date | time | ip | newsletter | session | points | id_firma | firma | +----+----------+---------+----------+-----------------------+-------+-----------+-------------------------+----------+------------+----------+---------------+------------+----------------------------------+--------+----------+-------+ | 40 | 0 | name | lastname | belgerstr .7| 12987 | Yakima |ass@yahoo.com | ard | 2008-07-09 | 12:50:00 | 194.163.234.7 | 0 | 939329349249214 | 14 | NULL | NULL | +----+----------+---------+----------+-----------------------+-------+-----------+-------------------------+----------+------------+----------+---------------+------------+----------------------------------+--------+----------+-------+ 1 row in set (0.00 sec) fuer die naechste Operation
neue dafür verwendete spalte in der user tabelle könnte user.agentur_update heißen dh. in die neue spalte agentur_update beinhaltet dann die id der entsprechenden agentur, die spalte firma können wir dann aus der user tabelle entfernmen und hätten immernoch die referenzierung über agentur um an die daten zu kommen.
habe ich die Funktion INSERT einfach mal benutzt
INSERT INTO test.agentur SELECT 'firma' AS 'id_firma' from test.user;

aber ich hab ein error bekommen

1

ERROR 1136 (21S01): Column count doesn't match value count at row

Hilfe!:(

MFG

Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke Robotto fuer die schnelle Antwort.

Also es geht nicht weil die Tabelle user mehr parameter als agentur hast.

und hast du eine Idee wie ich es machen kann, um dieses Problem zu beseitigen.

und auch wie kann ich denn die user und agentur gleich machen,so dass wenn man sich anmeldet an der stelle Firma name nur ein Agentur_id steht.

MFG

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also es geht nicht weil die Tabelle user mehr parameter als agentur hast.

Wie sieht denn das ERD aus? Ich werde aus der Problemstellung leider nicht so ganz schlau. Dein Insert für die agentur Tabelle muss bei Values 2 Parameter haben. also insert into <tabelle> values <spalte 1, spalte 2,... spalte n> oder Du musst die Felder explizit angeben, die gefüllt werden.

Hier findest Du einige einführende Informationen: MySQL Datenbankhandbuch

Phil

Link zu diesem Kommentar
Auf anderen Seiten teilen

user

id INT

id_firma INT (frueher als VARCHAR)

name VARCHAR

vorname VARCHAR

Anschrift VARCHAR

email VARCHAR

Agentur

Id_firma INT

firma VARCHAR

Ich wollte mal die Daten von user.id_firma ins agentur.firma mit einer kopieren. ich es schon id_firma von einem String to INT verwandelt habe. Es gab schon Daten die immer noch als string in user gespeichert sing in der INSERT INTO()-Fktion.

diese Daten wollte ich in agentur.firma reinziehen und auch die user.id ins agentur.id_firma.

ich habe schon versucht mit dieser Operation oben ohne Erfolg.

ich habe ein error

 INSERT INTO test.agentur SELECT test.user.id_firma  AS firma FROM test.user;


ERROR 1136 (21S01): Column count doesn't match value count at row 1

Ich hoffe es war explicit genug

MFG

Link zu diesem Kommentar
Auf anderen Seiten teilen

user

id INT

id_firma INT (frueher als VARCHAR)

name VARCHAR

vorname VARCHAR

Anschrift VARCHAR

email VARCHAR

Agentur

Id_firma INT

firma VARCHAR <= Du hast hier 2 Spalten !!!!!!!!

 INSERT INTO test.agentur SELECT test.user.id_firma  AS firma [B]<= hier hast Du aber nur eine Spalte [/B] FROM test.user;

Du musst genauso viele Spalten in den Insert aufnehmen, wie Du auf der Tabelle hast!

Phil

Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke Phil,

Also was du mit den Spalten gemeint hattest, war sehr hilfreich.

Ich habe die agentur spalte von id_firma weggemacht und einfach die Operation gefuehrt.

Also ich hatte 1 spalte von user.id_firma und 1 spalte agent.firma.

Am Ende habe ich nur die VARCHAR wieder mit INT zurueckgebracht und TADA!!

Laeuft.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...