Нужна помощь с запросом MySQL - PullRequest
       19

Нужна помощь с запросом MySQL

0 голосов
/ 28 февраля 2010

Я новичок в MySQL, поэтому, пожалуйста, не могли бы вы мне помочь. У меня есть 2 таблицы "слова" и "текст"

слова имеют столбцы:

  1. слово
  2. синонимы

текст имеет столбцы:

  1. текст
  2. слово
  3. article_id

Мне нужно получить уникальные слова words.word и самые большие уникальные поля text.atricle_id. Один и тот же article_id может иметь разные слова. например

words 
word     synonyms
 ----------------------- 
 car      auto, vehicle 
 water    syn1, syn2      
 bus      syn1, syn2

 text 
 text          word        article_id
 --------------------------------------- 
 any text      car            1
 any_text      water          1
 any_text      water          2
 any_text      car            2
 any_text      bus            1
 any_text      bus            3

 I need to get the result: 
 car   | 2
 water | 1
 bus   | 3

У меня есть запрос, но он возвращает не уникальный article_id

SELECT words.word, text.article_id 
FROM `words` , `text`
WHERE text.word = words.word
GROUP BY words.word
ORDER BY text.article_id DESC

Ответы [ 2 ]

1 голос
/ 28 февраля 2010

Этот запрос получит желаемый результат:

SELECT words.word, max(text.article_id) as biggest_article_id
FROM `words` , `text`
WHERE text.word = words.word
GROUP BY words.word
ORDER BY text.article_id DESC

Результат:

 word  _ biggest_article_id
 bus   | 3
 car   | 2
 water | 2

Примечание 1: у воды самый большой_article_id = 2, а не = 1, как вы указали в вопросе.

Примечание 2: ORDER BY text.article_id DESC не даст вам результат в порядке, указанном в вопросе.

0 голосов
/ 28 февраля 2010

Может быть, это сделает это:

SELECT DISTINCT words.word, text.article_id 
FROM `words` , `text`
WHERE text.word = words.word
HAVING max(text.article_id)
GROUP BY words.word
ORDER BY text.article_id DESC
...