2017-06-21 42 views
1

我有具有以下結構的表格:針列水平地在SQL

CREATE TABLE `slide_style_info` (
    `ssi_id` int(11) unsigned NOT NULL AUTO_INCREMENT, 
    `slide_style_id` int(11) DEFAULT NULL, 
    `input_type` varchar(64) DEFAULT NULL, 
    `input_name` varchar(64) DEFAULT NULL, 
    `default_value` varchar(64) DEFAULT NULL, 
    PRIMARY KEY (`ssi_id`) 
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=latin1 

和值:

1 |1 |Text    |Text 1   |First text here 
2 |1 |Text    |Text 2   |Second text here 
3 |2 |Text    |Text 1   |First text here 
4 |1 |Text    |Text 3   |Third text here 
5 |1 |Font Family  |Font Family 1 |Comic Sans 
6 |1 |Font Family  |Font Family 2 |Comic Sans 
7 |1 |Font Family  |Font Family 3 |Comic Sans 
8 |2 |Font Family  |Font Family 1 |Comic Sans 

我想選擇其中所有行slide_style_id = 1,但顯示的結果是這樣的格式:

1 |1 |Text    |Text 1   |First text here  |Font Family  |Font Family 1 |Comic Sans 
2 |1 |Text    |Text 2   |Second text here  |Font Family  |Font Family 2 |Comic Sans 
4 |1 |Text    |Text 3   |Third text here  |Font Family  |Font Family 1 |Comic Sans 

這可以用sql來完成嗎?

我希望的解決方案將使用:

SELECT `input_type`, `input_name` 
FROM `scene_style_info` 
WHERE `scene_style_id` = 1 
AND `input_type` = "Text" 
ORDER BY `input_name` 

SELECT `input_type`, `input_name` 
FROM `scene_style_info` 
WHERE `scene_style_id` = 1 
AND `input_type` = "Font Family" 
ORDER BY `input_name` 

現在我有我需要在正確的順序值,但我不知道任何方式縫合這些列水平。

+0

你如何鏈接文字與字體家族?例如:你怎麼知道文字1與字體家族1? – fabricio

+0

order by input_name就足夠了。文本1總是匹配字體家族1 – sanjihan

+0

我還可以添加一個額外的標識符,使其更清晰。 – sanjihan

回答

0

這是不是一個真正的解決方案,只需觀察

我覺得你的要求是隻能從您所提供的事實部分可能的。

它看起來像,因爲它們共享的2

ssi_id | slide_style_id | input_type | input_name | default_value 
8  |2    |Font Family Font Family 1 |Comic Sans 

和結果的共同slide_style_id值將是一個單列,類似你可能涉及此行

ssi_id | slide_style_id | input_type | input_name | default_value 
3  |2    |Text  |Text 1  |First text here 

到該行包括在問題

中,但使用相同的邏輯,這三行中的每一行:

ssi_id | slide_style_id | input_type | input_name | default_value 
1  |1    |Text  |Text 1  |First text here 
2  |1    |Text  |Text 2  |Second text here 
4  |1    |Text  |Text 3  |Third text here 

會涉及到這些3行

ssi_id | slide_style_id | input_type | input_name | default_value 
5  |1    |Font Family |Font Family 1 |Comic Sans 
6  |1    |Font Family |Font Family 2 |Comic Sans 
7  |1    |Font Family |Font Family 3 |Comic Sans 

,其結果將是3×3 = 9行

,你有沒有跟出示任何合理的方式提供給我們我的觀點存在使用SQL所需的結果。

+0

謝謝你停下來。我添加了我期待的選項,並找到了描述它的正確詞語。 – sanjihan