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 :: Запрос Mysql не могу сообразить

 PHP.SU

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


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

> Описание: не могу сформировать запрос
sabriel
Отправлено: 15 Сентября, 2009 - 14:36:29
Post Id


Гость


Покинул форум
Сообщений всего: 77
Дата рег-ции: Июнь 2008  
Откуда: Салават, Башкортостан


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




здравствуйте попрос в следующем. есть таблица contract в ней
CODE (text):
скопировать код в буфер обмена
  1.  
  2. |id     |title  |comment|
  3. -------------------------
  4. |1      |100001 |blabla |
  5. |2      |100002 |bububu |
  6. |3      |100003 |bababa |
  7.  


nтаблица cont

CODE (text):
скопировать код в буфер обмена
  1.  
  2. |cid    |pid    |val    |
  3. ------------------------
  4. |1      |6      |34763  |
  5. |1      |14     |Lenin  |
  6. |1      |15     |uhuh   |
  7. |2      |14     |ufimsk |
  8. |3      |6      |5376   |
  9. |3      |15     |sofof  |
  10.  

Мне нужно что бы результатом запроса стал след вывод где поле Val выводил бы только елси оно 14 если не равно то

оставлял пустым

CODE (text):
скопировать код в буфер обмена
  1.  
  2. |title  |comment|val    |
  3. ------------------------
  4. |100001 |blabla |Lenin  |
  5. |100002 |bububu |ufimsk |
  6. |100003 |bababa |               |
  7.  


пробовал
CODE (text):
скопировать код в буфер обмена
  1. SELECT title, comment,val FROM contract, cont where contract.id=cont.cid

выводит повторяющиеся title с разными val
CODE (text):
скопировать код в буфер обмена
  1. SELECT title, comment,val FROM contract, cont where contract.id=cont.cid and con.val=14

выводит только те где есть val равный 14, чтологично )
Но вот как сделать что бы вывел то что мне нужно? Улыбка
Делать через отрицание значений val не вариант Улыбка
 
 Top
Viper
Отправлено: 15 Сентября, 2009 - 14:50:07
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


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




несовсем понятно что нужно.
val = 14 нигде нет. есть только pid

из того что мальчик Хуан попытался объяснить, я понимаю что нужно выбрать из двух таблиц данные где pid = 14 или не пустое?!


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
sabriel
Отправлено: 16 Сентября, 2009 - 06:37:08
Post Id


Гость


Покинул форум
Сообщений всего: 77
Дата рег-ции: Июнь 2008  
Откуда: Салават, Башкортостан


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




Viper пишет:
val = 14 нигде нет. есть только pid

простите да где pid=14
выбрать нужно то где есть pid=14 и все остльные id но если pid=14 в них нет то вывести ячейку val пустую

З.Ы. Я не мальчик Хуан, у меня ник есть. Если хотите сказать, что либо про меня используйте ник а не свои обозначения.
 
 Top
Viper
Отправлено: 16 Сентября, 2009 - 08:35:23
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


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




можно через join сделать выборку. в пустом результате будет в ячейке null


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
sabriel
Отправлено: 16 Сентября, 2009 - 13:25:43
Post Id


Гость


Покинул форум
Сообщений всего: 77
Дата рег-ции: Июнь 2008  
Откуда: Салават, Башкортостан


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




Пробую но что то не получается)
 
 Top
sabriel
Отправлено: 18 Сентября, 2009 - 09:30:20
Post Id


Гость


Покинул форум
Сообщений всего: 77
Дата рег-ции: Июнь 2008  
Откуда: Салават, Башкортостан


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




Люди помогите ) как можно сделать?
 
 Top
Champion Супермодератор
Отправлено: 18 Сентября, 2009 - 10:04:36
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


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




A
|id |title |comment|
-------------------------
|1 |100001 |blabla |
|2 |100002 |bububu |
|3 |100003 |bababa |
B
|cid |pid |val |
------------------------
|1 |6 |34763 |
|1 |14 |Lenin |
|1 |15 |uhuh |
|2 |14 |ufimsk |
|3 |6 |5376 |
|3 |15 |sofof |

Select title, comment, val from A left join И ON cid=id AND pid=14
 
 Top
Viper
Отправлено: 18 Сентября, 2009 - 10:08:53
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


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




CODE (text):
скопировать код в буфер обмена
  1. SELECT a.title, a.comment, b.pid, b.val FROM contract AS a
  2. LEFT JOIN cont AS b ON b.pid = '14'
  3. WHERE a.id = b.cid


попробуйте так.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
sabriel
Отправлено: 18 Сентября, 2009 - 11:48:12
Post Id


Гость


Покинул форум
Сообщений всего: 77
Дата рег-ции: Июнь 2008  
Откуда: Салават, Башкортостан


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




Вроде что то подобное пробовал. может где обшибался. щас попробую ваши Улыбка
(Добавление)
sabriel пишет:
#
SELECT a.title, a.comment, b.pid, b.val FROM contract AS a
#
LEFT JOIN cont AS b ON b.pid = "14"
#
WHERE a.id = b.cid


Выводит только тех у кого есть pid равный 14
(Добавление)
Champion пишет:
Select title, comment, val from A left join И ON cid=id AND pid=14


Спасио работает !Улыбка))) а я пробовал конструкцию только в она выглядела так
CODE (text):
скопировать код в буфер обмена
  1.  
  2. Select title, comment, val from A left join И ON (cid=id, pid=14)
  3.  

он там что то рукался что выводит больше одного столбца, а что AND поставить можно как то и не догадался))) Спасибо
 
 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