我可以使用一些幫助。這是一個現實生活中的問題,而不是家庭作業。我嘗試了各種各樣的外部聯合和聯合聲明,但我只是弄得一團糟。需要聯合和/或外連接的SQL查詢需要
我有3個表:
Table "item":
id | name
---------
1 | 'Item 1'
2 | 'Item 2'
Table "property_type":
id | name
------------------
105 | 'Property A'
106 | 'Property B'
107 | 'Property C'
Table "property" (fk stands for foreign key):
id | fk_item | fk_property_type | value
---------------------------------------------------------------------
1044 | 1 | 106 | 'some value for prop B of item 1'
1045 | 2 | 107 | 'some value for prop C of item 2'
現在我需要產生一個屬性表對於一個給定的產品ID,顯示每個屬性類型的線路,即使不是所有的資產,由於該項目集的語句,例如如果我對第1項感興趣,輸出應爲:
item_name | property_type_name | property_value
------------------------------------------------------------------
'Item 1' | 'Property A' | NULL
'Item 1' | 'Property B' | 'some value for prop B of item 1'
'Item 1' | 'Property C' | NULL
並隨時提出更好的問題標題。如果我知道如何更好地表達這個問題,我可能會通過搜索自己找到答案。
這總是會一團糟。如果你堅持走下EAV路線,你需要的是一個其他的表DefaultProperties,它將Item連接到PropertyType。目前所有你能得到的是笛卡爾產品,只有在所有產品都具有所有特性的情況下才可以接受。 –
你打電話的PS也有一個預填充的default_value,如果這可能會派上用場。 –
什麼是EAV?默認值只是NULL,是不是有辦法將這個默認值表作爲臨時表在動態語句內部建立? – Zalumon