2011-08-03 6 views
0

定義された番号 - 現在の記事の番号です。 authorsのテーブルがあります:特定の行を持つ著者を選択してください

id | post_id | autor 

は、この記事内の指定された著者のかどうかを示す列を追加し、作者のリストを選択する必要があります。

例:

id | post_id | autor 
1  33  Jacob 
2  35  Mike 
3  31  John 
4  35  Jacob 
5  33  Andrew 

は、物品35のために取得する必要があります。

autor | use 
Jacob 1 
Mike  1 
John  0 
Andrew 0 

私が選択autorsのクエリを使用します。

SELECT a.`autor`, (
SELECT count(*) as `count` 
FROM `autors` 
WHERE `post_id`=35 AND `autor`=a.autor 
) 
FROM `autors` a 
GROUP BY `autor` 
ORDER BY `autor` DESC 

このクエリを最適化する方法は?

+0

authorsテーブルと別のpost_authorsテーブルで正規化された構造があれば、これは簡単です。 – Jacob

+0

これはWordpressのプラグインです – newpdv

答えて

0
SELECT a1.autor, 
     (CASE WHEN a2.post_id IS NULL THEN 0 ELSE 1) AS `use` 
FROM (SELECT DISTINCT * 
     FROM `autors`  
     ORDER BY `autor` DESC) AS a1 
LEFT JOIN autors AS a2 ON (a1.autor=a2.autor AND a2.post_id=?) 

このようなものは動作するはずです。

+0

2行目に構文エラーがあります – newpdv

+0

答えを編集しました – Jacob

関連する問題