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

Форум MySQL

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

 

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

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

тема: Выборка по двум таблицам, нужна помощь
 
 автор: vbps   (16.06.2014 в 23:00)   письмо автору
 
 

Делаю комментарии, пытаюсь получить выборку по двум таблицам, но что то не получается, не работает выборка по первому параметру node1, выдает все и на всех страницах, node1 это хеш строки из md5 в varchar, поле node1 в таблице ".$db["prefix"]."account отсутствует:


  $r=mysql_query("
  SELECT
    ".$db["prefix"]."commentary.id as id,
    ".$db["prefix"]."commentary.node1 as node1,
    ".$db["prefix"]."commentary.name as name1,
    ".$db["prefix"]."commentary.message1 as message1,
    ".$db["prefix"]."commentary.data1 as data1,
    ".$db["prefix"]."commentary.date_in as date_in,
    ".$db["prefix"]."commentary.account_id as account_id,
    ".$db["prefix"]."account.name as name2,
    ".$db["prefix"]."account.photo1 as photo1
  FROM
  ".$db["prefix"]."commentary
  LEFT JOIN
  ".$db["prefix"]."account
  ON
  node1='".trim($node1)."'
  AND
  ".$db["prefix"]."commentary.account_id=".$db["prefix"]."account.account_id
  ORDER by ".$db["prefix"]."commentary.id DESC
  LIMIT ".$val["commentary_start"].",".$val["commentary_pp"]."
  ;") or die(mysql_error());

  Ответить  
 
 автор: Igorek   (17.06.2014 в 09:21)   письмо автору
 
   для: vbps   (16.06.2014 в 23:00)
 

Попробуйте JOIN без LEFT

  Ответить  
 
 автор: vbps   (17.06.2014 в 22:14)   письмо автору
 
   для: Igorek   (17.06.2014 в 09:21)
 

Спасибо за подсказку, но не подходит, так как задумывалось сделать возможность разрешать зарегистрированным, не зарегистрированным или всем, т.е. максимум гибкости, что бы наличие записи в account было не обязательным. При использовании inner join будут отображаться записи только при наличии записи в account:

Вопрос решен (если вдруг кому пригодится):


  $r=mysql_query("
  SELECT
    *,
    ".$db["prefix"]."account.name as name2,
    ".$db["prefix"]."account.photo1 as photo1
  FROM(
    SELECT
    *,
    ".$db["prefix"]."commentary.name as name1
    FROM
    ".$db["prefix"]."commentary
    WHERE
    node1='".trim($node1)."'
    ORDER by ".$db["prefix"]."commentary.id DESC
    LIMIT 0,10
    )temp
  LEFT JOIN
  ".$db["prefix"]."account
  ON
  temp.account_id=".$db["prefix"]."account.account_id
  ;") or die(mysql_error());

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

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