Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 首先是好友,然后是喜欢列表中的其他用户_Php_Sql_Laravel - Fatal编程技术网

Php 首先是好友,然后是喜欢列表中的其他用户

Php 首先是好友,然后是喜欢列表中的其他用户,php,sql,laravel,Php,Sql,Laravel,我有桌子: likes - id, user_id, like_user_id<br> users - id, name, email ...,<br> friends - id, user_id, friend_id, status<br> 您需要在此处使用将喜欢的用户与好友用户合并。执行此操作后,您可以创建一个人工列friend,在friend查询中填充1,在like查询中填充0。稍后您可以按该列订购 SELECT friends.user_id


我有桌子:

likes - id, user_id, like_user_id<br>
users - id, name, email ...,<br>
friends - id, user_id, friend_id, status<br>
您需要在此处使用将喜欢的用户与好友用户合并。执行此操作后,您可以创建一个人工列
friend
,在friend查询中填充
1
,在like查询中填充
0
。稍后您可以按该列订购

SELECT
    friends.user_id,
    1 as friend,
    users.*
FROM
    friends
    JOIN users ON users.id = friends.friend_user_id
    UNION SELECT
            likes.user_id,
            0 as friend,
            users_liked.*
        FROM
            likes
            JOIN users as users_liked ON likes.like_user_id = users_liked.id
WHERE
    user_id = '$userId'
ORDER BY friend DESC, id ASC

这将返回所有好友的列表,然后是所有喜欢的用户的列表。

是的,应该可以!添加一些示例表数据和预期结果-作为格式化文本,而不是图像。同时显示您当前的查询尝试。
SELECT
    friends.user_id,
    1 as friend,
    users.*
FROM
    friends
    JOIN users ON users.id = friends.friend_user_id
    UNION SELECT
            likes.user_id,
            0 as friend,
            users_liked.*
        FROM
            likes
            JOIN users as users_liked ON likes.like_user_id = users_liked.id
WHERE
    user_id = '$userId'
ORDER BY friend DESC, id ASC