POSTS
[ id - post - content ]
----------------------------
[ 1 - 1post1 - 1content1]
[ 2 - 1post2 - 2content2]
VOTES
[ id - pid]
------------
[ 1 - 1]
[ 2 - 1]
[ 3 - 1]
[ 4 - 2]
[ 5 - 2]
1post1 = 3 votes
2post2 = 2 votes
当我尝试此查询ORDER BY和别名COUNT()在一个查询
$query = "SELECT a.title, a.content, b.COUNT(id) FROM posts a, votes b WHERE id = :id ORDER BY b.COUNT(id)";
它不工作,并给了我这个错误
FUNCTION b.COUNT does not exist. Check the 'Function Name Parsing and Resolution
是否有一个更好的如何做到这一点?我想过使用UNION ALL
是这样
$query = "SELECT title, content, COUNT(id) FROM posts WHERE id = :id
UNION ALL
SELECT COUNT(id) FROM votes WHERE pid = :id";
,但我将无法使用ORDER BY COUNT(id)
的第一部分,这是我想订购取决于第二部分问题就在这里。
要清楚,你是否试图选择按'票数'排序的'posts'?什么是表结构? –
你是指'count(b.id)'? – xQbert
@NiettheDarkAbsol推出了一个示例表。 –