Вот
$q=mysql_query("SELECT * FROM `user` ORDER BY `rating` LIMIT $start, $set[p_str]"
while ($ank = mysql_fetch_array($q))
{
}
Выводятся все пользователи
Но мне нужно запретить вывод польователей которые не установили аватар при том что Установка аватара идет в другую таблицу
gallery_foto , загружаешь фото, и если хочешь на аватар то в поле в это таблице уйдет как avatar = 1
Так вот как мне их обьеденить?
В каком поле хранится id юзера,который загрузил фото ? (в таблице gallery_foto)
SELECT * FROM `user`
LEFT JOIN `gallery_foto` ON `user`.`id` = `gallery_foto`.`user_id`
AND `gallery_foto`.`avatar` = 1
ORDER BY `user`.`rating` LIMIT $start, $set[p_str]
Примерно так. Только тут много подводных камней. Такие как совпадение имён ячеек в 2 таблицах и прочее
Маленькая ошибка. select user.*, gallery_foto.avatar as avatar from... будет правельнее.
В "*" таким образом ты выбереш все из всех таблиц. Но лучше выбрать все из таблици user
Добавлено 06.05.15 в 13:35:42:
А по мне, так лучше зделать лиш выборку того что нужно
Vocaloid, Ну так если нужны определённые поля, то и выбирай их. Я же не знаю что ему нужно. Я написал пример. И раз на то уже пошло, то твой пример правильным будет в случае с ячейками имеющие одинаковое название в обоих таблицах и которые задействованы при выводе в коде ))
Vocaloid, Ну так если он в коде не задействован, то с ним и не нужно не каких манипуляций проводить, с переименованием и тп. Вообще правильно указывать поля которые тебе нужны. И если одно из полей имеет одинаковое имя и там и там, то дать ему другое имя.
Мозг спит уже )) В общем тут выборка индивидуальная. Я примерно написал, что и как делать. Если не шаришь, то лучше не браться за такие выборки. Лучше кого то попроси ))
А не проще как-то так?
SELECT * FROM
user WHERE
id IN
(SELECT user_id
FROM gallery_foto WHERE
avatar = 1) ORDER by . . .