Ich habe zwei mysql Tabellen record_items, property_values mit der folgenden Struktur.MySQL Tabellenreihenfolge um eine Spalte, wenn andere Spalte einen bestimmten Wert hat
table : property_values (column REC is foreign key to record_items)
id(PK)|REC(FK)| property | value|
1 | 1 | name | A |
2 | 1 | age | 10 |
3 | 2 | name | B |
4 | 3 | name | C |
5 | 3 | age | 9 |
table: record_items
id(PK) |col1|col2 |col3|
1 | v11| v12 | v13|
2 | v21| v22 | v23|
3 | v31| v32 | v33|
4 | v41| v42 | v43|
5 | v51| v52 | v53|
record_items Tabelle enthält nur grundlegende Informationen über den Datensatz, in dem als property_values Tabelle als Fremdschlüssel hält record_item und jede Eigenschaft, und sein Wert in einer separaten Zeile gespeichert wird.
Jetzt möchte ich die record_items sortiert nach einer bestimmten Eigenschaft, sagen nach Alter. Meine HQL-Abfrage wie
seineSelect distinct rec from PropertyValues where property="age" order by value;
Aber diese Abfrage wird Datensatz 2 wird übersprungen, da es keinen Eintrag für Immobilien Alter hat. Ich erwarte, dass das Ergebnis die Datensätze enthält, die die Eigenschaft "age" in der Sortierreihenfolge enthalten, die von denen angehängt wird, die überhaupt keine Alterseigenschaft haben. Wie kann ich das abfragen?
Wie können wir Alter in der 'record_items' Tabelle beziehen? Ihre Daten sehen für mich nicht normal aus. –
Ich habe nur ein Beispiel gegeben. Record_items kann eine große Anzahl von Eigenschaften haben, sagen etwa 1000, und das ist dynamisch, da alle Datensätze keine Werte für alle Spalten haben. Anstatt also 1000 Spalten in der record_items-Tabelle zu behalten, verwalte ich nur einige grundlegende Spalten in der record_items-Tabelle und eine separate Tabelle property_values speichert jede Eigenschaft und jeden Wert für die Datensatzelemente. (Altersspalte, die ich als Beispiel gegeben habe) – Jerry
OK ... welches Verhalten wollen Sie, wenn ein bestimmter Datensatz in 'record_items' nicht zu einer Eigenschaft gehört? Wie sollte es bestellt werden? –