упорядочение по строкам - PullRequest
0 голосов
/ 15 апреля 2011

ОК, поэтому у меня есть запрос, который я пытаюсь построить .. У меня есть 2 таблицы, таблица1 имеет несколько обычных записей, как обычно, с уникальным идентификатором (автоинкремент), а таблица2 содержит записи, которые включают некоторые из этих идентификаторов из таблицы1. , Я пытаюсь упорядочить по самым высоким записям с тем же идентификатором в таблице 1. Вот что у меня есть:

SELECT * FROM table1 
WHERE table1.status = 1 
AND (SELECT COUNT(*) FROM table2 WHERE table2.tbl1_id = table1.id) 
ORDER BY table1.id DESC

Спасибо:)

Ответы [ 2 ]

1 голос
/ 15 апреля 2011

Попробуйте это:

SELECT a.*, b.cnt
  FROM table1 a LEFT JOIN
    (
        SELECT tbl1_id, COUNT(*) cnt
            FROM table2
        GROUP BY tbl1_id
    ) b
 ON a.id = b.tbl1_id  
WHERE table1.status = 1 
ORDER BY cnt DESC
1 голос
/ 15 апреля 2011
SELECT table1.id 
FROM table1 
LEFT JOIN table2 ON table2.tbl1_id = table1.id
WHERE table1.status = 1 
GROUP BY table1.id
ORDER BY COUNT(table2.tbl1_id) DESC
...