我現在做了很多嘗試,但沒有任何實際的幫助。 我想創建一個靈活的視圖(如果可能)。有2個表格的結果。 這裏是我wannt:Mysql從SQL查詢創建靈活視圖
表參觀者:
ID Hash created
1 sadasdasdasd 2017-02-24 08:31:37
2 123kipdösas3 2017-02-24 08:31:37
3 12oaskdasdap 2017-02-24 08:31:37
4 asdauihsuahs 2017-02-24 08:31:37
表VisitorData
id vID type value created
1 1 First Name Hans 2017-02-24 09:15:11
2 1 Last Name Wurst 2017-02-24 09:15:11
3 1 Company WDHUWDHUGMBGH 2017-02-24 09:15:11
4 1 E-Mail [email protected] 2017-02-24 09:15:11
5 1 Phone 123123 2017-02-24 09:15:11
6 1 Salutation Mr 2017-02-24 09:15:11
7 1 Type qwes 2017-02-24 09:15:11
最後我wannt我的表(視圖)是這樣的:
id vID First Name Last Name Company E-Mail Phone Salutation Type
1 1 Hans Wurst WDHUWDHUGMBGH [email protected] 123123 Mr qwes
事實是,我們不知道VisitorData.type中可以包含什麼。 所以我不能只是做
CREATE VIEW DataVisitorView AS
SELECT DataVisitor.id, DataVisitor.hash,
IF(DataVisitorValues.Type='First Name',DataVisitorValues.Value,null) AS First Name,
IF(DataVisitorValues.Type='Last Name',DataVisitorValues.Value,null) AS Last Name ,
IF(DataVisitorValues.Type=' Company ',DataVisitorValues.Value,null) AS Company ,
IF(DataVisitorValues.Type='E-Mail',DataVisitorValues.Value,null) AS E-Mail,
IF(DataVisitorValues.Type='Phone ',DataVisitorValues.Value,null) AS Phone ,
IF(DataVisitorValues.Type='Salutation ',DataVisitorValues.Value,null) AS Salutation
FROM `DataVisitor`
LEFT JOIN `DataVisitorValues`
ON `DataVisitor`.`id` = `DataVisitorValues`.`vID`
所以我想詳細瞭解此
CREATE VIEW `DataVisitorView` AS
SELECT
DataVisitorValues2.typ
FROM (`DataVisitor2`
LEFT JOIN `DataVisitorValues2`
ON `DataVisitor2`.`id` = `DataVisitorValues2`.`vID`)
Where `DataVisitor2`.`id` = `DataVisitorValues2`.`vID`
但它完全以錯了,我得到一個表
|typ|
First Name
Last Name
Company
...
對此有任何解決方案? 我也使用Php的工作,但表中,但自動更新自己和一個chrone作業是沒有什麼幫助在這裏
要創建列列表,您需要知道VisitorData.type列中可能存在的內容,或者您必須動態創建列表。如果你想要一個視圖,它將在你創建它時被修復。您可以使用過程來即時創建結果集,而不是視圖。 –
因此,visitordata中的行數對於每個訪問者可能會不同,並且type列中的文本是自由格式? –
@ p.Salmon表訪問者數據獲取20+表單的值,如果新表單將被添加,並有「新」類型的名稱,我希望查詢是動態的,所以我不必每次都改變sql查詢。 –