MySQL сортирует результат, используя поле другой таблицы - PullRequest
0 голосов
/ 03 февраля 2009

У меня есть 3 таблицы следующей структуры

    products
    {
        pid
        pname
        plocation...
    }

    services
    {
        s_id
        s_name
        s_location...
    }

    txn
    {
        tid
        pid...
    }

Я использую следующий запрос для получения требуемых значений.

    $dbquery = "SELECT DISTINCT products.pid AS id,
                   products.pname AS name,
                   products.p_desc AS description,
                   products.p_loc AS location,
                   products.category AS category,
                   products.p_uid AS userid,
                   products.add_date AS dateadded,
                   products.isaproduct AS whatisit
              FROM products
             WHERE products.pname
              LIKE '%".$keyword."%'
               AND category = '".$refine_value."'
             UNION
             SELECT DISTINCT services.s_id AS id,
                   services.s_name AS name,
                   services.s_desc AS description,
                   services.s_category AS category,
                   services.s_uid AS userid,
                   services.s_location AS location,
                   services.date_added AS dateadded,
                   services.isaservice AS whatisit
              FROM services
             WHERE services.s_name
              LIKE '%".$keyword."%'
               AND s_category = '".$refine_value."'

Мне нужно упорядочить значения, которые я выбрал, получив количество pid в таблице txn, которое я получил в запросе выше.

Как я могу это сделать?

1 Ответ

1 голос
/ 03 февраля 2009

Прежде всего, используйте параметризованные запросы вместо построения строки запроса, подобной этой. Меня это беспокоит.

Но, похоже, все, что вам действительно нужно сделать, это сгруппировать по столбцу pid в таблице txn.

Определить вид как

SELECT pid, COUNT(tid) tid_count
FROM txn
GROUP BY pid

И включите его в свой запрос, затем закажите по tid_count.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...