Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: выборка из нескольких одинаковых таблиц

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
integer
Отправлено: 07 Ноября, 2013 - 20:35:48
Post Id


Новичок


Покинул форум
Сообщений всего: 35
Дата рег-ции: Нояб. 2006  


Помог: 0 раз(а)




структура таблиц одинаковая
сейчас сделано так:
SELECT * FROM `данные1` WHERE `data` LIKE '%http%' UNION ALL
SELECT * FROM `данные2` WHERE `data` LIKE '%http%' UNION ALL
SELECT * FROM `данные3` WHERE `data` LIKE '%http%' ORDER BY `юзер` , `время`
пытаюсь переделать так
SELECT * FROM `данные1`,`данные2`,`данные3` WHERE `data` LIKE '%http%' ORDER BY `юзер` , `время`
получаю ошибку
Column 'data' in where clause is ambiguous
думаю что от меня хотят название определенной таблицы, как указать для всех таблиц ?

(Отредактировано автором: 07 Ноября, 2013 - 20:48:23)

 
 Top
teddy
Отправлено: 07 Ноября, 2013 - 20:37:39
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




ORDER BY tablename.время

(Отредактировано автором: 07 Ноября, 2013 - 20:38:01)

 
 Top
integer
Отправлено: 07 Ноября, 2013 - 20:52:35
Post Id


Новичок


Покинул форум
Сообщений всего: 35
Дата рег-ции: Нояб. 2006  


Помог: 0 раз(а)




teddy пишет:
ORDER BY tablename.время

чтото не пойму как указать сразу для всех таблиц ? можно весь запрос ?
или нужно по одной указывать ? или лучше оставить как есть с UNION ALL ?
 
 Top
teddy
Отправлено: 07 Ноября, 2013 - 21:08:01
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




ошибка происходит потому, что сервер MySQL не понимает как сортировать результат запроса. Он говорит, у вас в нескольких таблицах есть поле data, вопрос, по какой дате сортировать? Улыбка Поэтому нужно выбрать таблицу, по дате которой нужно отсортировать результат(помоему если перечислите через запятую несколько таблиц то вес будет иметь только последняя, поэтому лучше написать одну)

По поводу запроса, если честно я в него не вникал Улыбка Я не знаю что вам нужно, прочитал ошибку которую вы получаете и решил разъяснить её причину
 
 Top
Panoptik
Отправлено: 07 Ноября, 2013 - 21:30:05
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




сервер не понимает выражение Where data, так как data имеется сразу в трех таблицах и он не знает какую из них брать

то что вы хотите сделать без указания имени таблиц не получится

нужно обязательно указывать имя таблиц для повторяющихся столбцов
CODE (SQL):
скопировать код в буфер обмена
  1. WHERE tablename.DATALIKE '%something%' OR tablename2.DATALIKE '%something%'

(Отредактировано автором: 07 Ноября, 2013 - 21:31:23)



-----
Just do it
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB