Вывод из бд по 2м параметрам

Печать / RSS
0
1. Dmitry Kokorin 20.01.2016 / 09:59
Оранжевые штаны
есть таблицы
=>friends

user_id|friend_id|user_add|friend_add
1 |2 |0 |1
1 |3 |0 |1
4 |1 |1 |0


=>users

id|name |family
1 |Вася |Петров
2 |Гадя |Хренова
3 |Гриша |Степанов
4 |Юля |Марьина


достаем id юзеров которые кинули заявку

SELECT `user_id`,`friend_id`
FROM
`friends`
WHERE
`user_id`=1 AND `user_add`=0 AND `friend_add`=1
OR
`friend_id`=1 AND `user_add`=1 AND `friend_add`=0

достаем данные этих юзеров

SELECT `id`,`name`,`family`
FROM
`users`
WHERE
`id` = $result->friend_id OR `id` = $result->user_id

достаем данные этих юзеров вариант 2

SELECT `id`,`name`,`family`
FROM
`users`
WHERE
`id` IN ($result->friend_id,$result->user_id)

оба варианта выводят 1 первый результат
как сделать чтобы выводились все 3?
0
2. ofrojkeee 20.01.2016 / 10:36
Пришелец
SELECT 
`u`.`name`,
`u`.`family`,
`f`.`user_id`,
`f`.`friend_id`
FROM `friends` AS `f`
LEFT JOIN `uesrs` AS `u` ON(`u`.`id` = `f`.`user_id`)


запрос выведет все данные из таблицы friends
при этом у тебя будет в одном массиве данные с двух таблиц

дальше сам думай что тебе нужно)
Изменил: ofrojkeee (20.01.2016 / 10:36)
0
3. Dmitry Kokorin 20.01.2016 / 10:39
Оранжевые штаны
	SELECT `id`,`name`,`family` 
FROM `users`
WHERE `id` IN
(SELECT `user_id` FROM `friends` WHERE
`friend_id`=1 AND `user_add`=1 AND `friend_add`=0)
OR `id` IN
(SELECT `friend_id` FROM `friends` WHERE
`user_id`=1 AND `user_add`=0 AND `friend_add`=1)

Может кому пригодится

Добавлено через 01:46 сек.
2. ofrojkeee, сам додумал как проще, но спасибо
0
4. Вантуз-мен 20.01.2016 / 12:01
Господин ПЖ
Через left join лучше, менее накладной и быстрее
0
5. Dmitry Kokorin 20.01.2016 / 13:20
Оранжевые штаны
4. Vantuz, мб и быстрее, но в моем запросе есть еще условия
Для выполнения действия необходимо авторизоваться!
Стикеры / Теги / Правила / Топ тем / Топ тем / Поиск