Zum Inhalt springen

mysql - wert in mehreren tabellen suchen


Art

Empfohlene Beiträge

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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?

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