Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

mysql - wert in mehreren tabellen suchen

Empfohlene Antworten

Veröffentlicht

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?

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

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.

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

siehe oben. aber erklär mal genauer bitte.

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

aber das klappt doch nur, wenn die kombination aus uid und wert eindeutig ist, oder?

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?

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.