Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Объединить таблицы по сложному условию
 
 автор: alex_fear   (09.03.2011 в 16:03)   письмо автору
 
 

Подскжите как подправить php запрпос

SELECT * FROM
  `kat_typ` INNER JOIN
  `kat_naz` ON `kat_typ`.`NAZNADWOZ` = `kat_naz`.`NAZ` 
  WHERE
  `kat_typ`.`MOD1` = $mod ORDER BY `TYPSORT` ;

Чтоб еще сюда добвать строчку

 `kat_naz` ON `kat_typ`.`TYPNAZ` = `kat_naz`.`NAZ` 

  Ответить  
 
 автор: cheops   (09.03.2011 в 18:22)   письмо автору
 
   для: alex_fear   (09.03.2011 в 16:03)
 

Можно поступить так
SELECT * FROM 
  `kat_typ` INNER JOIN `kat_naz`
   ON (`kat_typ`.`NAZNADWOZ` = `kat_naz`.`NAZ` AND
          `kat_typ`.`TYPNAZ` = `kat_naz`.`NAZ` )
  WHERE 
  `kat_typ`.`MOD1` = $mod ORDER BY `TYPSORT` ;

  Ответить  
 
 автор: alex_fear   (09.03.2011 в 18:32)   письмо автору
 
   для: cheops   (09.03.2011 в 18:22)
 


SELECT * FROM  
  `kat_typ` INNER JOIN `kat_naz` 
   ON (`kat_typ`.`NAZNADWOZ` = `kat_naz`.`NAZ` or 
          `kat_typ`.`TYPNAZ` = `kat_naz`.`NAZ` ) 
  WHERE  
  `kat_typ`.`MOD1` = 6670 ORDER BY `TYPSORT` ;

Да результат есть! Но дублирует знвчение. А нужно чтоб было как


SELECT * FROM  
  `kat_typ` INNER JOIN `kat_naz` 
   ON `kat_typ`.`NAZNADWOZ` = `kat_naz`.`NAZ` 
  WHERE  
  `kat_typ`.`MOD1` = 6670 ORDER BY `TYPSORT` ;

Без дубляжа!

  Ответить  
 
 автор: cheops   (09.03.2011 в 18:46)   письмо автору
 
   для: alex_fear   (09.03.2011 в 18:32)
 

Хм... у меня нет исходных таблиц, поэтому я не могу видеть результаты запроса. Если не сложно, прикрепите дамп таблиц или на словах опишите что дублируется.

  Ответить  
 
 автор: alex_fear   (10.03.2011 в 09:43)   письмо автору
 
   для: cheops   (09.03.2011 в 18:46)
 

Дублируется kat_typ`.`NAZNADWOZ` = `kat_naz`.`NAZ` вот эта строчка!

  Ответить  
 
 автор: cheops   (10.03.2011 в 11:23)   письмо автору
 
   для: alex_fear   (10.03.2011 в 09:43)
 

Попробуйте следующий запрос
SELECT * FROM  
  `kat_typ` INNER JOIN `kat_naz` 
   ON (`kat_typ`.`NAZNADWOZ` = `kat_naz`.`NAZ` AND 
          `kat_typ`.`TYPNAZ` = `kat_naz`.`NAZ` ) 
  WHERE  
  `kat_typ`.`MOD1` = $mod ORDER BY `TYPSORT` 
  GROUP BY kat_typ`.`NAZNADWOZ`;

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования