我有獨特的要求。我不知道這是我的表結構問題還是其他一些問題,但是我需要爲輸出結構更改或查詢更改提供解決方案。mysql多行值在哪裏條件在一個表上
我有一個表包含一個用戶的兩個字段的動態值。一個用戶可以擁有多種類型的記錄。
實施例下面的表
表名:tbl_parameters
parameter_id parameter_name
1 Current Location
2 Booked Location
3 Room Type
表名:tbl_paramter_data
id(auto_increment) user_id parameter_id parameter_value
1 10 1 Hyderabad
2 10 2 Delhi
3 10 3 Deluxe Room
4 11 1 Hyderabad
5 11 2 Bombay
6 11 3 A/C Room
7 12 1 Delhi
8 12 2 Bombay
9 12 3 Deluxe Room
10 13 1 Hyderabad
11 13 2 Delhi
12 13 3 Single Room
以上是我兩個表。它是酒店預訂表。用戶可以預訂來自印度的任何地方的旅館房間。所以,我存儲在2個不同的表中。第一個表格將包含我需要用parameter_id存儲的參數類型。第二個表格包含每個用戶的參數值從他們預訂的位置,預訂的房間和剩餘數據。還有一些其他參數。 **參數的數量是動態的。沒有固定的參數號,這就是我作爲tbl_parameters維護一個單獨的表的原因。
我的問題是如何得到
- 誰是用戶預訂了從「海得拉巴」,在「孟買」酒店的客房中的數據?
- 誰是用戶在「孟買」酒店預訂了「德里」的「豪華客房」?
如何編寫查詢以從現有表(tbl_parameter_data)中獲取上述數據?
或者是否需要更改表格結構或我們存儲的方式?
做過什麼,有一個叫'EAV' - 它代表爲實體屬性值。這也是*關係*數據的反模式,因爲很難查詢*關係*。另一方面,很容易存儲任意數量的屬性而不改變表格。在「適當的」表中顯示基於EAV的數據稱爲pivoting。但是,隨着數據的增長,性能將會下降 - 您必須首先進行調整,然後進行查詢。您的問題的解決方案是混合方法,並使用多個查詢而不是一個。您需要動態數據,您還需要查詢它。 –
這是一個非常常見的表格結構,它幾乎不是一個「獨特的要求」。 – Barmar
除非您提供代碼,您迄今嘗試使用的腳本,否則我們無法幫助您。 –