SQL-Abfragen

riddler16

Mitglied
Nabend,

irgendwie scheint SQL nicht nicht so wirklich mein Fall sein und deshalb hoffe ich auf eure Hilfe.
Habe zwei Tabellen die ich zu einer zusammen fügen möchte:
Code:
Tab1
id | att  |  string
1     2       S1
1     3       S2
1     4       S3
2     2       S4
2     3       S5

Tab2:
ses | att |  string
1       2      S1
2       2      S4
3       2      usw.
4       3
5       3
Was ich jetzt haben möchte ist eine Tabelle mit vier Spalten:
Code:
id | att | string | ses
1   2         S1     1
1   3   ..
1   4   ..
2   2         S4     2
2   3

wobei jedes Mal wenn z.B in Tabelle 1 S1 auftaucht der Wert 1(ses) aus Tabelle 2 in die Spalte geschrieben wird. Es soll also quasi ein Mapping stattfinden.

Vielen Dank für eure Hinweise und eine gute Nacht :)
 
Hallo,...

Ich nehme an, du meinst einen einfachen Join

Code:
Select 
          tabelle1.id,
          tabelle1.feld1,
          tabelle2.id,
          tabelle2.feld2
from tabelle1 
         left join tabelle2 on tabelle1.id=tabelle2.id

Passt das so für dich

lg aus Wien
http://www.lookover.at
 
Zuletzt bearbeitet:
Hi,

sorry das ich mich so spät erst melde.
Ja an sich ist es ein einfacher Join aber ich denke, dass es in diesem Fall leider nicht klappen wird, da ich ja auf Strings vergleiche. Bei beiden Tabellen gibt es keinen Primärschlüssel bzw. keinen den ich benutze.
 
Hallo,

du kannst dennoch einen Join nutzen. Allerdings wäre ein "normaler" Join eher geeignet als ein LEFT Join. Weiterhin solltest du auf die Spalte "string" in beiden Tabellen einen Index setzen.

SQL:
SELECT		a.id,
			a.att,
			a.string,
			b.ses
FROM		tab1 AS a
JOIN		tab2 AS b
			ON a.string = b.string
ORDER BY	a.id

Grüße BN
 
Zuletzt bearbeitet von einem Moderator:
Hi,

ich brech gleich zusammen :(... es will einfach nicht. Das Problem liegt glaub ich daran, dass es sich bei dem einen "String" um einen Memo Typ handelt. Ich benutze Access 2007. Und einfach umwandeln in den Datentyp "Text" geht auch nicht, weil anscheinend nicht genügend Arbeitsspeicher zur Verfügung steht.
SQL wird echt mein Untergang!

Hat noch jemand einen Tipp für mich? :(
 
Hallo,

schreibe nächstes mal bitte vor den Titel deines Beitrags "Access: Titel", dann weiß auch gleich jeder ob und wie er dir helfen kann. Access hat mMn nichts mit Datenbanken zu tun. Das ist Klickibunti und dabei lernt man kein SQL.

Ich kann dir leider nur in SQL-Syntax helfen, nicht jedoch in Access und dessen Eigenheiten.

Schade

Grüße BN
 
Hi,

naja das sehe ich nicht wirklich so wie du. Da es in Access auch die Möglichkeit gibt direkt SQL Code zu bearbeiten sehe ich dort keinen Unterschied zu anderen Systemen. Und auch wenn ich nicht so erfahren in Datenbanken bin, so bin ich mir doch relativ sicher, dass auf diversen Seiten oft der selbe "Befehl" für diverse DB-Systeme steht, da alle irgendwie ihre Eigenheiten besitzen. Sei es jetzt DB2, Oracle, Mysql und wie sie alle heißen.
Das mit dem Titel angeben gebe ich dir recht. Danke für deine Hilfe.
 
Access hat mMn nichts mit Datenbanken zu tun. Das ist Klickibunti und dabei lernt man kein SQL.
Ich kann dir leider nur in SQL-Syntax helfen, nicht jedoch in Access und dessen Eigenheiten.

VOLLKOMMEN RICHTIG

Acces ist kein Datenbank-system
bei diesem ganzen MS-Crap hast du ewig irgendwelche unnötigen schererein.
Da kann man garnicht mehr dazu sagen.

Aber es ist klaereweise eine Anwenungdbezogene Desktoplösung und kein Datenbankserver
also was wäre die beste alternative für dich

lg aus Wien
www.lookover.at
 
Hallo,

schreibe nächstes mal bitte vor den Titel deines Beitrags "Access: Titel", dann weiß auch gleich jeder ob und wie er dir helfen kann. Access hat mMn nichts mit Datenbanken zu tun. Das ist Klickibunti und dabei lernt man kein SQL.

Grüße BN

selten so gelacht, aber nun gut. Wenn jet kein Datenbanksystem ist, dann sind es derby, hypersonic und sqlite auch nicht. davon mal abgesehen, du kannst sehr wohl SQL abfragen mit access formulieren, die dann gegen JetSQL gehen. Wers braucht, kann auch ODBC einsetzen und oracle, postgresql oder whatever einsetzen.


... und dessen Eigenheiten.

wer jemals mit mysql gearbeitet hat, wird sich wundern wie viele absonderliche eigenheiten da existieren. Das einzig wirklich standardisierte an SQL ist nämlich die uneinheitliche umsetzung aller db-hersteller
 
Ich hatte Datenbanksystem vielleicht etwas unglücklich formuliert.
Vermutlich gibt es Menschen die geneigt sind Access als Datenbanksystem zu bezeichnen :D.

Doch im Gegegnsatz zu SQLLite und konsorten, braucht mann immer ein Access das läuft.
Abgesehen von Lizensfragen ist das aus meiner Sicht auch aufgrund von Performancefragen sehr fragwürdig.
Und eben wenn man mit ODBC auf zb. Postgress verbindet. Schätze ich mal, dass das aufgrund der extremen eigenheiten von Access nicht wirklioch anständig funktioniert. Und nach irgendeinem Update (Access oder ODBC) muss man allerlei Querys neu anpassen.

Ich meine, ich will ja nicht irgendwie gscheit daherreden, aber in der Praxis läuft das niemals verlässlich.
Selbst VB an Mysql über ODBC anzubinden erfordert nach jedem update vom MysqlOdbc das anpassen der Querys.
Wie soll das also unter Access verlässlich funktionierten, wo man auf Querys so grundsätzlich nur bedingt Einfluss hat .

Und Eigenheiten (Mysql) (oder in diesem Fall warscheindlich oft Features) sind im Grunde nichts schlechtes, solange eine entsprechende Basisfunktionalität (ANSI-SQL) verfügbar ist.

Ansi-SQL was übrigens sehr wohl ein definierter SQL Standard ist !!

lg aus Wien,...
www.lookover.at
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück