Ich brauche nur eine Richtung auf diesem. Ich habe die folgenden Tabellen:MySQL dynamisch zusammenführen/auswählen Wählen Sie Zeilen
Table: entity
- ID (INT)
Table: attributes
- ID (INT)
- name (VARCHAR)
- internalname (VARCHAR)
Table: values
- ID (INT)
- entity (ID)
- attributes (INT)
- value (Text)
Was ich will, ist ein Select Statement zu machen, die so etwas wie die folgenden zurück:
- ID = entity.ID
- {attributes.internalname ID 1} = values.{attribe internalname 1}.value
- {attributes.internalname ID 2} = values.{attribe internalname 2}.value
- {attributes.internalname ID 3} = values.{attribe internalname 3}.value
- {attributes.internalname ID n} = values.{attribe internalname n}.value
- etc...
Es wäre wie die Kombination von:
SELECT entity.id FROM entity;
und
SELECT (SELECT values.value FROM values WHERE values.entity = entity.ID AND values.attributes = attributes.ID) FROM attributes;
Es ist eine schwierige Sache zu erklären, aber wenn Sie mich weiter erklären müssen, lassen Sie es mich wissen.
Ich möchte effektiv alle Werte in Attributen zu Spalten drehen und alle Werte in den entsprechenden Attributwert mit der ID als Selektor drehen.
Ich gebe der Abfrage eine ID (das Element ID), und in einer Ergebniszeile gibt es alle Daten zurück.
Vielen Dank im Voraus!
Ich sehe nicht, warum die Tabellenentität mit nur einer Spalte existiert, die bereits in der Tabelle Werte gespeichert ist – cfEngineers
Es ist nur als ein Index, und einige Spalten können dort erscheinen. Dies ist tatsächlich sehr ähnlich zu Magento Commerce speichert seine Daten, Problem ist, dass sie Hunderte von Abfragen verwenden, um das gleiche Ergebnis, das ich versuche, in einem zu erreichen. – Nitroware