Ilja: MySQL: Datensatz mit genau einer Relation

Beitrag lesen

yo (bemüht sachlich zu bleiben),

Wieso? Wir haben die Tabellen 'company', 'bestimmte Objekte' und die Tabelle, die die Relationen haelt. Das ist dann eine "n:m"-Beziehung.

von den 3 tabellen, die er angegeben hat, handelt es sich um eine n:m beziehung. aber von seinen aussagen her, ist die beziehungstabelle überflüssig. er schrieb, eine company kann zwar mehrere objekte haben, aber umgekehr hat er nichts dazu gesagt. also gehe ich erst einmal davon aus, dass ein objekt nicht mehrere companies haben kann. und dann handelt es sich um eine 1:n beziehung. eine n:m ist zwar durch aus denkbar und seine strukturen sind so aufgebaut. aber es ist auf jeden fall schon mal sehr fraglich. aber ohne ihn können wir das sowieso nicht ganz klären. also lassen wir es mal offen und gehen einfach von der m:n beziehung aus.

Weil jede in der Relationentabelle gehaltene Relation jeweils auf einen Datensatz der Tabelle 'company' und auf einen der Tabelle 'bestimmte Objekte' zeigt. Du willst mir doch nicht das Wort Zeiger verbieten, oder?

schau ludger. ich weiss nicht warum du die aussage ignorierst, dass es sich bei relationen um tabellen handelt. entweder hast du noch eine andere meinung dazu, wobei ich nicht weiss, welchen klärungsbedarf es dabei noch gibt, nachdem ein zitat aus deinem link wortwörtlich besagt, bei relationen handelt es sich um tabellen. oder aber du versuchst zu provozieren. übersetzt bedeutet dein satz folgendes:

"Weil jede in der Tabelletabelle gehaltene Tabelle jeweils auf einen Datensatz der Tabelle 'company' und auf einen der Tabelle 'bestimmte Objekte' zeigt."

macht das sinn ?

und natürlich werde ich dir kein wort verbieten, nur weiss ich nicht welche bedeutung das wort zeiger in der group by klausel haben soll. dabei handelt es sich um spaltennamen, die dort angegeben werden. was also soll das wort zeiger dort für einen sinn haben ?

und um auf die abfrage zurückzukommen und warum zwei spaltenangaben kritisch sind. handelt es sich wirklich um eine n:m beziehung, dann vereinfacht dies die gesuchte abfrage. schließlich befindet sich alles wissenswerte in nur einer tabelle, nämlich der beziehungstabelle (relationship-tabelle). dort stehen sowohl die company_id's als auch die object_id's. ich brauche dort also nur über die company_id gruppieren und mit hilfe der HAVING klausel die count(*) = 1 einbinden. jede weitere spalte, die ich in der GROUP BY klausel angebe kann aber die gruppierung verändern und hat somit einfluss auf die count(*) aggregat-funktion.

Ilja