對不起英文不好和壞標題!MySQL從3個表中選擇,並把它放在PHP數組中
我有表 「後」
id title
1 test Thread
2 hello
3 just
所以有「標籤」
tagid tagname
1 test
2 russia
3 new site
所以有post_tags
tagid postid
1 1
2 1
3 1
我需要從一個數組下面的var_dump如下:
$posts = array(
1 => array(
'title' => 'test Thread',
'tags' => array(
'test', 'russia', 'new site',
),
),
2 => array(
'title' => 'hello',
'tags' => NULL
),
3 => array(
'title' => 'just',
'tags' => NULL
),
)
我試着去做,但我沒有得到我想要的東西。
SELECT `post`.`id`, `post`.`title`, `tags`.`tagname` FROM `post`
LEFT JOIN `post_tags` ON `post_tags`.`tagid` = `post`.`id`
LEFT JOIN `tags` ON `post_tags`.`tagid` = `tags`.`tagid`
我得到的SQL次年:
id title tagname
1 test Thread test
1 test Thread russia
1 test Thread newsite
2 hello NULL
3 just NULL
PHP
$query = mysql_query("SELECT `post`.`id`, `post`.`title`, `tags`.`tagname` FROM `post`
LEFT JOIN `post_tags` ON `post_tags`.`tagid` = `post`.`id`
LEFT JOIN `tags` ON `post_tags`.`tagid` = `tags`.`tagid`");
$posts = array();
while ($row = mysql_fetch_assoc($query))
{
$posts[] = $row;
}
var_dump($posts);
謝謝!
你不能從一個mysql數據庫返回一個多維數組。如果您需要這種形式,您必須對結果進行自己的後處理。 – dqhendricks 2012-04-10 21:38:14
僅供參考:如果您使用保留字,則只需要轉義表/字段名稱。將所有內容倒入反引號只會使查詢更加難以閱讀。 – 2012-04-10 21:45:40