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

Печать RSS
332

Автор
Оранжевые штаны
0
есть таблицы
=>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?
O

Пришелец
0
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
	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
Через left join лучше, менее накладной и быстрее
Автор
Оранжевые штаны
0
4. Vantuz, мб и быстрее, но в моем запросе есть еще условия
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск