2013-08-12 2 views
0

У меня есть две таблицы в моей дб .. один сообщения и другая Контакты ... обе таблицы содержат поле MOBILE_NUMBER .. в Контакты таблице нет двух одинаковых номеров. .., но в таблицах сообщений есть несколько повторяющихся чисел в поле mobileNo ... то, что я делаю, это написать сейчас, я выбираю разные номера мобильных телефонов из таблиц , а затем сравниваю различные цифры из таблицы контактов. .. так что если message_mobileNo находится в таблице контактов, тогда дайте мне имя контакта против числа в противном случае messages_mobileNo ... поэтому проблема не работает. Я не могу получить отдельные цифры из таблицы Messages. , он показывает мне дубликат num Берсотчетливый не работает в SQL запросе

вот мой запрос

SELECT DISTINCT Message.mobileNo, 
      Contact.mobileNo, 
      Contact.workNo, 
      Contact.homeNo, 
      Contact.other, 
      Contact.name, 

      Message.body, 
      Message.idTextMessage 
FROM cakephp_db.textmessage AS Message 
LEFT JOIN cakephp_db.contacts AS Contact ON (Message.user_id = Contact.user_id 
             AND ((Message.mobileNo = Contact.mobileNo) 
               OR (Message.mobileNo = Contact.workNo) 
               OR (Message.mobileNo = Contact.homeNo) 
               OR (Message.mobileNo = Contact.other))) 
WHERE Message.User_id = 23 
ORDER BY Message.idTextMessage DESC LIMIT 6 

ответ

0

Так вы пытаетесь получить последние 6 сообщений о человеке, если я прав?

SELECT Message.mobileNo, 
      Contact.mobileNo, 
      Contact.workNo, 
      Contact.homeNo, 
      Contact.other, 
      Contact.name, 

      Message.body, 
      Message.idTextMessage 
FROM cakephp_db.textmessage AS Message 
LEFT JOIN cakephp_db.contacts AS Contact ON Message.user_id = Contact.user_id 
             AND Message.mobileNo IN (Contact.mobileNo, Contact.workNo, Contact.homeNo, Contact.other) 
WHERE Message.User_id = 23 
GROUP BY Message.mobileNo 
ORDER BY Message.idTextMessage DESC LIMIT 6 
+0

Thankyou работает – hellosheikh

0

добавить GROUP BY Message.mobileNo до вашего ORDER BY

+0

Это не дает ответа на этот вопрос. Чтобы критиковать или просить разъяснения у автора, оставьте комментарий ниже их сообщения. –

+0

ОК. будет помнить об этом –

0

Если вы используете MySQL SELECT DISTINCT с ORDER BY добавили к нему, вам придется создать временную таблицу, в которой он может хранить свои результаты. Вот ссылка предлагает дополнительную помощь:

MySQL DISTINCT Optimization

Смежные вопросы