|
|
|
| Делаю комментарии, пытаюсь получить выборку по двум таблицам, но что то не получается, не работает выборка по первому параметру 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());
|
| |
|
|
|
|
|
|
|
для: vbps
(16.06.2014 в 23:00)
| | Попробуйте JOIN без LEFT | |
|
|
|
|
|
|
|
для: 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());
|
| |
|
|
|