php - 如何通过 Laravel Eloquent 使用复杂的(如派生表和子查询)查询

php - How to use complex (like derived tables and subqueries) queries with Laravel Eloquent

我坚持使用 laravel 查询生成器。 laravel 的特色真是太好了。我认为它不适合复杂的 SQL 查询。 我从数据库中向 select 两个人的相互联系写了一个查询,但我不知道如何使用 laravel 查询生成器

对其进行编码

我的 SQL 查询:

    SELECT
    *
FROM
    (
    SELECT
        *
    FROM
        connections
    WHERE
        connections.user_id = '107' OR connections.connection = '107'
) AS UserAConnetions
INNER JOIN(
    SELECT
        *
    FROM
        connections
    WHERE
        connections.user_id = '106' OR connections.connection = '106'
) AS UserBConnetions
ON
    (
        UserBConnetions.user_id = UserAConnetions.user_id OR UserAConnetions.connection = UserBConnetions.connection OR UserBConnetions.user_id = UserAConnetions.connection OR UserAConnetions.user_id = UserBConnetions.connection
    )

我正在建立一个社交网络,所以我需要在获得共同好友后获取用户名和头像

在您的模型中,您应该定义关系,然后将其与您的 eloquent 一起使用。

例如:

$users = User::with('connections') -> get();

就这样。

Laravel Relationships

阅读。它非常简单,并为您提供了很大的灵活性。