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]   

> Без описания
alnik-75
Отправлено: 02 Января, 2015 - 20:03:51
Post Id



Посетитель


Покинул форум
Сообщений всего: 338
Дата рег-ции: Сент. 2012  
Откуда: Гродно, Беларусь


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




Добрый вечер, форумчане!!!

С праздником Вас всех!!!!

Мне нужна консультация:
Есть две таблицы. При формировании запроса должно быть выполнено условие:

Возможны случаи, когда pole1 у tbl1 пустое, тогда должно быть выполнено условие:

Если pole2 пустое, тогда должно сработать условие :


Заранее неизвестно будут ли у tbl1 заполнены указанные поля. Можно ли указывать в таком случае условие, указанное ниже?
PHP:
скопировать код в буфер обмена
  1.  
  2. tbl2.a = tbl1.pole1 or tbl2.a = tbl1.pole2 or tbl2.a = tbl1.pole3
  3.  


Заранее выражаю благодарность.....
 
 Top
kotyara1979
Отправлено: 02 Января, 2015 - 20:30:05
Post Id


Частый гость


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


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




CODE (SQL):
скопировать код в буфер обмена
  1. tbl2.a = tbl1.pole1 OR tbl2.a = tbl1.pole2 OR tbl2.a = tbl1.pole3


Да, так можно.

Если есть и другие условия, то просто оберните это в скобки.

CODE (SQL):
скопировать код в буфер обмена
  1. WHERE (tbl2.a = tbl1.pole1 OR tbl2.a = tbl1.pole2 OR tbl2.a = tbl1.pole3) AND tbl1.b>10

(Отредактировано автором: 02 Января, 2015 - 20:30:36)



-----
Сделать можно все. Главное одеть каску.
 
 Top
alnik-75
Отправлено: 02 Января, 2015 - 20:40:09
Post Id



Посетитель


Покинул форум
Сообщений всего: 338
Дата рег-ции: Сент. 2012  
Откуда: Гродно, Беларусь


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




небольшое уточнение. Если pole1 != "", то совпадений по pole2 и pole3 не должно проверяться. соответственно, если pole1 = "", а pole2 != "", то не должно действовать
 
 Top
kotyara1979
Отправлено: 02 Января, 2015 - 20:46:29
Post Id


Частый гость


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


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




Постройте условие следующим образом и получите искомое.
CODE (SQL):
скопировать код в буфер обмена
  1. tbl2.a = tbl1.pole1 OR (tbl2.a = tbl1.pole2 AND tbl1.pole1='') OR (tbl2.a = tbl1.pole3 AND  AND tbl1.pole1='' AND tbl1.pole2='')


-----
Сделать можно все. Главное одеть каску.
 
 Top
alnik-75
Отправлено: 02 Января, 2015 - 20:58:22
Post Id



Посетитель


Покинул форум
Сообщений всего: 338
Дата рег-ции: Сент. 2012  
Откуда: Гродно, Беларусь


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




Спасибо, буду проверять)))))))
 
 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