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
Форумы портала PHP.SU :: Версия для печати :: Запрос Mysql не могу сообразить
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » Запрос Mysql не могу сообразить

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

1. sabriel - 15 Сентября, 2009 - 14:36:29 - перейти к сообщению
здравствуйте попрос в следующем. есть таблица 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 не вариант Улыбка
2. Viper - 15 Сентября, 2009 - 14:50:07 - перейти к сообщению
несовсем понятно что нужно.
val = 14 нигде нет. есть только pid

из того что мальчик Хуан попытался объяснить, я понимаю что нужно выбрать из двух таблиц данные где pid = 14 или не пустое?!
3. sabriel - 16 Сентября, 2009 - 06:37:08 - перейти к сообщению
Viper пишет:
val = 14 нигде нет. есть только pid

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

З.Ы. Я не мальчик Хуан, у меня ник есть. Если хотите сказать, что либо про меня используйте ник а не свои обозначения.
4. Viper - 16 Сентября, 2009 - 08:35:23 - перейти к сообщению
можно через join сделать выборку. в пустом результате будет в ячейке null
5. sabriel - 16 Сентября, 2009 - 13:25:43 - перейти к сообщению
Пробую но что то не получается)
6. sabriel - 18 Сентября, 2009 - 09:30:20 - перейти к сообщению
Люди помогите ) как можно сделать?
7. Champion - 18 Сентября, 2009 - 10:04:36 - перейти к сообщению
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
8. Viper - 18 Сентября, 2009 - 10:08:53 - перейти к сообщению
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


попробуйте так.
9. sabriel - 18 Сентября, 2009 - 11:48:12 - перейти к сообщению
Вроде что то подобное пробовал. может где обшибался. щас попробую ваши Улыбка
(Добавление)
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 поставить можно как то и не догадался))) Спасибо

 

Powered by ExBB FM 1.0 RC1