2
我有一個MySQL表結構如下優化SQL查詢通過分組
+-------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| make | varchar(55) | NO | MUL | NULL | |
| model | varchar(55) | NO | MUL | NULL | |
| year | varchar(4) | NO | MUL | NULL | |
+-------------+------------------+------+-----+---------+----------------+
和一些示例數據
('Chevrolet', 'Express', '2001'),
('Chevrolet', 'Express', '2002'),
('Chevrolet', 'Venture', '2001'),
('Chevrolet', 'Venture', '2002'),
('Dodge', 'Dakota', '2000'),
('Dodge', 'Dakota', '2001'),
('Ford', 'Flex', '2009'),
('Ford', 'Flex', '2010'),
我想要的是能返回我所有的車型之一的快速查詢,所有的製造和附加年份。所以下面是我想返回的一個例子。
Array
(
[Chevrolet] => Array
(
[Express] => Array
(
[0] => 2001
[1] => 2002
)
[Venture] => Array
(
[0] => 2001
[1] => 2002
)
)
[Dodge] => Array
(
[Dakota] => Array
(
[0] => 2001
[1] => 2002
)
)
[Ford] => Array
(
[Flex] => Array
(
[0] => 2009
[1] => 2010
)
)
)
什麼我目前做的:
我有一個查詢返回的所有獨特的品牌:
$sql = "select distinct make from listings order by make asc ";
,一旦我每天做,我遍歷並運行以下查詢,使用make:
$sql = "select distinct model from listings where make = ? order by model asc ";
我走o NE更一步搶到年:
$sql = "select distinct year from listings where make=? and model=? order by year desc";
分享我們的解釋查詢的計劃,並在表的索引... – 2013-04-23 05:56:53
@SashiKant我目前還沒有表上的所有索引,解釋輸出與描述相同 – 2013-04-23 06:01:30