Zum Inhalt springen

mysql - wert in mehreren tabellen suchen


Empfohlene Beiträge

Geschrieben

hi,

ich habe mehrere tabellen, in denen es ein feld gibt, das den besitzer des datensatzes angibt. also so ne art user berechtigung oder wie hier im forum der userid in den beiträgen. das sind so 6-8 tabellen.

ich suche jetzt nach einer möglichst schnellen abfrage, ob ein bestimmter benutzer in diesen tabellen vorkommt.

ich habe im moment sowas:


"select table_1.id, table_2.id .... table_n.id 

            from table_1, table_2 .... table_n

            where table_1.usrid='search_item'

            or table_2.usrid='search_item' ....

            or table_n.usrid='search_item'

            limit 0, 1"

das einmalige vorkommen des gesuchten wertes reicht also vollkommen.

gibts was einfacheres?

Geschrieben
Original geschrieben von Art

gibts was einfacheres?

Ja, vorher nen vernünftiges Datenbankmodel entwerfen. ;)

Ansonsten mit der Abfrage leben oder 6-8 einzelne Abfragen auf die einzelnen Tabellen hintereinander absetzen, das sollte deutlich schneller sein.

Gruß Jaraz

Geschrieben
Original geschrieben von Jaraz

Ja, vorher nen vernünftiges Datenbankmodel entwerfen. ;)

nicht alles wo man ranmuss, ist auf eigenem mist gewachsen ;)

aber schlag mal was vor.

jede tabelle stellt ein objekt dar. z.b. ein auto, ein haus, eine katze. jedes objekt kann genau einen besitzer haben. wobei ein besitzer natürlich mehrere häuser, autos usw. besitzen kann oder natürlich auch nur ein haus oder ein motorrad und ein motorrad usw. usw. wie sähe denn dein modell aus?

im moment ist es so, das jedem objekt die besitzer-id zugeordnet ist. eine zuordnungstabelle hilft da auch nicht irgendwie weiter. aber nix genaues weiss man.

Geschrieben
Original geschrieben von Art

nicht alles wo man ranmuss, ist auf eigenem mist gewachsen ;)

Kenn ich, deswegen auch der Smily. :D

Du könntest auch noch eine Tabelle erstellen in der die nötigen infos der anderen Tabellen gesammelt werden.

Bedeutet natürlich bei einem Insert in die Tabellen auch die eine upzudaten.

Ich hoffe es wird klar was ich meine!

Nicht immer 8 Abfragen sondern eine Tabelle mit den anderen Konsistent halten und darauf die Abfrage machen.

Gruß Jaraz

Geschrieben

T1

uid, wert, name

T2

uid, wert, beruf

T3

uid, wert, farbe

Du benötigst nun z.B. nur uid und wert, aber aus allen Tabellen.

Also bastelst du dir eine Tabelle in der du alle uid, wert Kombinationen speicherst.

T1-3

uid, wert

Auf diese Tabelle machst du deine Abfrage.

Knackpunkt, wenn sich einer der 3 Tabellen ändert, musst du auch deine ändern.

Gruß Jaraz

Geschrieben

Nö, nur wenn du auch aus der T1-3 wieder abhängig von einer anderen Tabelle löschen willst, musst du halt festhalten aus welcher Tabelle die uid, wert Kombination in T1-3 kommt.

Diese Kombination aus den 3 Werte sollten dann eindeutig sein.

Du hattest doch geschrieben, das es egal ist wie oft der User in den einzelnen Tabellen vorkommt, oder?

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...