Вывод из бд по 2м параметрам
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?
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
при этом у тебя будет в одном массиве данные с двух таблиц
дальше сам думай что тебе нужно)
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, сам додумал как проще, но спасибо
4.
Вантуз-мен (20.01.2016 / 12:01)
Через left join лучше, менее накладной и быстрее
5.
Dmitry Kokorin (20.01.2016 / 13:20)
4.
Vantuz, мб и быстрее, но в моем запросе есть еще условия
URL:
https://visavi.net/topics/42811