我現在有這個說法......SQL服務器:集團內連接來單獨列
SELECT *
FROM stock AS s
INNER JOIN stock_attributes AS sa ON sa.stock_code = s.stock_code
此輸出這樣的信息...
| stock_code | attribute name | attribute value |
|------------|----------------|-----------------|
| ABC01 | color | red |
| ABC01 | size | small |
| ABC01 | price | 10.0 |
| XYZ99 | color | blue |
| XYZ99 | size | large |
| XYZ99 | price | 50.0 |
但是我希望它看起來像這樣
| stock_code | color | size | price |
|------------|----------------|-----------------|------------------|
| ABC01 | red | small | 10.0 |
| XYZ99 | blue | large | 50.0 |
我發現許多這樣的例子對SO,但他們似乎是非常準確的複雜的例子,我確信一個函數會存在於我想要達到的上面。
目前我在多個INNER JOIN
s中使用SELECT
來實現這個功能,以選擇屬性名稱,但是這需要在創建新屬性名稱時手動修改。
非常感謝提前!
這就是爲什麼屬性表是一個壞主意,它們很難查詢。你真正需要做的是正確地重新檢查你的數據庫。 EAV表只適用於你在deagin時間無法預測的事情,如果你需要大量的信息,你應該根本不使用真實的數據庫。他們不僅難以查詢,他們可能是性能殺手。 – HLGEM 2014-10-30 14:15:44
在谷歌上查看:旋轉表。 – 2014-10-30 14:16:28
*但是這需要在創建新屬性名稱時手動修改*您可以對此做很多事情。這是實體屬性值設計的成本之一。你可能需要做動態查詢,或者在添加屬性時做代碼生成 – 2014-10-30 14:17:02