我想我已經達到了我對MySQL查詢知識的高峯。我似乎無法產生,我懷疑是一個複雜的查詢。以下是我的設置背景,然後是問題。我有3張桌子。爲了簡潔起見,我只列出相關的列。Mysql查詢,更具體地說,與Laravel雄辯
customers
- id
customer_fields
- id
- name
customer_datas
- id
- customer_id
- customer_field_id
- value
該設置允許客戶端創建附加到客戶的任意數量的字段。 customer_datas保存客戶字段的值並鏈接到數據項。例如:
customer (1 record)
- id: 1
customer_fields (2 records)
- id: 1
- name: firstname
- id: 2
- name: lastname
customer_datas (2 records)
- id: 1
- customer_id: 1
- customer_field_id: 1
- value: John
- id: 2
- customer_id: 1
- customer_field_id: 2
- value: Doe
這是問題所在。我能夠爲每個客戶甚至是客戶列表提供數據。我無法做的是按列排序數據,在這種情況下,它必須是某種僞列。
下面是一個例子。我不能只運行ORDER BY名字,因爲我的客戶表中沒有該列。它都是動態的,所以firstname是客戶端設置的字段,位於customer_fields表中。我希望能夠通過客戶端設置的任何customer_field進行排序,但是我擔心我對mysql查詢的瞭解有限。我也不確定Laravel雄辯能夠做到這一點。如果不是,我可以走上原始路線。
我從來沒有做過任何事情,所以我願意接受我的設置全錯的可能性。任何幫助將不勝感激。即使只是把我指向正確的方向。
此外,道歉,如果這已被覆蓋的地方。我覺得這是一個相當具體的案例,我找不到任何有關它的信息。
您不需要通過'customers.id'進行分組,因爲每個客戶只能有一個「firstname」。如果不是這樣,'ORDER BY ca.value'就沒有多大意義。另請注意,您無法使用數字值正確排序。 –
我的例子很基礎。在我的實際工作流程中,我的字段具有多個值,如電話,傳真等......沒有羣組,我遇到了問題。在我的列表中,我只需要爲每個具有多個值的字段顯示主要值。 感謝您讓我意識到數值問題的排序。我想,一旦出現這個問題,我會處理它,嘿 – Patrick