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

Печать / RSS
34


Оранжевые штаны
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, мб и быстрее, но в моем запросе есть еще условия
Для выполнения действия необходимо авторизоваться!
Стикеры / Теги / Правила / Топ тем / Топ тем / Поиск