Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Неверный результат запроса
 
 автор: OLi   (03.11.2012 в 16:51)   письмо автору
 
 

Почему такой запрос выдает излишние данные (в таблице 1 строка совпадения, а в результате 42)

"SELECT

                             events.title, events.content, events.place, events.description,
                             instans.name, instans.description, instans.adres, instans.phone,
                             jobs.name,
                             stock.name, stock.organizator, stock.rules, stock.description

                        FROM events, instans, jobs, reports, stock
                        WHERE events.title LIKE '%".$search_word."%' OR
                        events.content LIKE '%".$search_word."%'

"

  Ответить  
 
 автор: OLi   (03.11.2012 в 16:55)   письмо автору
 
   для: OLi   (03.11.2012 в 16:51)
 

Поиск по нескольким таблицам. Вопрос еще в том, как вывести это результат? заведомо не известно в какой таблице, в каком поле будет найдено совпадение; как определить, какие поля выводить во view

  Ответить  
 
 автор: OLi   (03.11.2012 в 17:57)   письмо автору
 
   для: OLi   (03.11.2012 в 16:55)
 

Порылся на форуме, нашел тему
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=68090
Говорят UNION юзать, но для операции объединения, насколько я знаю, необходимо условие равного числа доменов объединяемых таблиц и совпадение их имен, что в моем случае не соблюдается.

  Ответить  
 
 автор: OLi   (03.11.2012 в 18:01)   письмо автору
 
   для: OLi   (03.11.2012 в 17:57)
 

В моем случае, тогда нужно делать отдельные запросы, с переименованием полей для каждой таблицы (title, description и тд), а потом объединять массивы результата в один и выводить. Но здесь решается лишь проблема не совпадения имен полей таблицы.

  Ответить  
 
 автор: OLi   (03.11.2012 в 18:13)   письмо автору
 
   для: OLi   (03.11.2012 в 18:01)
 

Вопрос сейчас сводится вот к чему:

Пусть первый запрос вернул поля Name, desciption, rules
Второй: Name, description, rules
Третий: Name, phone, organizator
___________________

Объединяя эти массива результатов сталкиваемся с проблемой на выводе массива: потому как поля phone, organizator не были найдены в 2-ъ предыдущей запросах.
Как сделать, чтобы если они не были найдены в других таблицах, то делать их NULL

  Ответить  
 
 автор: Sfinks   (03.11.2012 в 19:02)   письмо автору
 
   для: OLi   (03.11.2012 в 18:13)
 

Вы бы эти три запроса показали?
Да и структуру таблиц не плохо было бы.
И словами описать, что вам нужно получить из этих таблиц.
А то пока ниче не понятно.

  Ответить  
 
 автор: cheops   (03.11.2012 в 18:45)   письмо автору
 
   для: OLi   (03.11.2012 в 16:51)
 

Так вы группируйте данные по нужному вам полю при помощи GROUP BY или вместо запятой используйте LEFT JOIN и условие объединение таблиц ON или USING.

  Ответить  
 
 автор: OLi   (03.11.2012 в 19:03)   письмо автору
 
   для: cheops   (03.11.2012 в 18:45)
 

Как произвести группировку по полю, если его нету в таблице? Все остальные поля совпадают по имени. Разница лишь в двух полях.

  Ответить  
 
 автор: cheops   (03.11.2012 в 21:03)   письмо автору
 
   для: OLi   (03.11.2012 в 19:03)
 

А цель запроса какая? Как связаны эти таблицы друг с другом?

  Ответить  
 
 автор: Sfinks   (03.11.2012 в 18:59)   письмо автору
 
   для: OLi   (03.11.2012 в 16:51)
 

CROSS JOIN пяти таблиц?... Надеюсь они не большие? Иначе я сочувствую серверу.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования