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 :: Как составить SQL запрос (двойной)

 PHP.SU

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


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

> Без описания
igor3310
Отправлено: 07 Мая, 2015 - 11:08:06
Post Id


Гость


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


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




Здравствуйте!
Есть таблица в ней 4-е поля p1 , p2 , p3 , p4 - как сделать выборку когда идет поиск по нейже и надо чтоб выбрало когда результат = полям самой же таблицы? ( двойной запрос)

Сейчас так:
PHP:
скопировать код в буфер обмена
  1. 'SELECT * FROM LINKS WHERE (ORIGINAL_NUMS="'.$Number.'" AND ORIGINAL_BRAND="'.$Brand.'") OR (CROSS_NUMS="'.$Number.'" AND CROSS_BRAND="'.$Brand.'"

тоесть тут мы получим результат - несколько строк , а надо чтоб в 1 запросе этот же результат как бы сопоставлял с самой же таблицой с полями ORIGINAL_NUMS ORIGINAL_BRAND и уже получалась более по кол-ву выборка
 
 Top
Panoptik
Отправлено: 07 Мая, 2015 - 11:16:10
Post Id



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


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


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




не совсем понятна суть вопроса.
что за выборка из выборки?

если что в запросе не закрыта скобка
и предпочтительней использовать тег SQL вмето PHP


-----
Just do it
 
 Top
igor3310
Отправлено: 07 Мая, 2015 - 11:22:52
Post Id


Гость


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


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




Это надо типа инер жоина или 2-го запроса к 1-й таблице - первый это поиск и будут совпадения (выберет несоклько строк) и надо что 2-й (как бы запрос ) вытянул еще строки совпадение которых есть с данными из первого запроса

и надо чтоб даные с 1 и 2 запроса были в общем резулте
(Добавление)
Пришло в голову такое:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT *
  2.         FROM LINKS
  3.         INNER JOIN  ORIGINAL_NUMS=O.ORIGINAL_NUMS AND ORIGINAL_BRAND=O.ORIGINAL_BRAND OR CROSS_NUMS=O.CROSS_NUMS AND CROSS_BRAND=O.CROSS_BRAND
  4.         WHERE   (SELECT O.* FROM LINKS WHERE (ORIGINAL_NUMS="'.$Number.'" AND ORIGINAL_BRAND="'.$Brand.'") OR (CROSS_NUMS="'.$Number.'" AND CROSS_BRAND="'.$Brand.'")

(Добавление)
По смыслу так наверное хочется:

CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT *
  3.         FROM LINKS
  4.         WHERE   ORIGINAL_NUMS=O.ORIGINAL_NUMS AND ORIGINAL_BRAND=O.ORIGINAL_BRAND OR CROSS_NUMS=O.CROSS_NUMS AND CROSS_BRAND=O.CROSS_BRAND  OR ORIGINAL_NUMS="'.$Number.'" AND ORIGINAL_BRAND="'.$Brand.'") OR (CROSS_NUMS="'.$Number.'" AND CROSS_BRAND="'.$Brand.'" (SELECT O.* FROM LINKS WHERE (ORIGINAL_NUMS="'.$Number.'" AND ORIGINAL_BRAND="'.$Brand.'") OR (CROSS_NUMS="'.$Number.'" AND CROSS_BRAND="'.$Brand.'")
  5.  
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с СУБД »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB