JP.dev
JP.dev

Reputation: 170

Need Info from different id on the same table Laravel

I need a query that gives me the name of the creator of the specific person .I have a table with persons where there are two ids...

person_id creator_id

The person has a name also the creator has a name, So i need the name for the creator of the specific person, there is model Person controller everything.I am currently working on the edit blade of the person and all the info is in the same table.

TRIED

I tried creating a method in my model to somehow join the creator id to the person id but i failed

EDIT

More info..for example a person with id = 10 has

person_id = 10 , person_name = john , creator_id = 20

but the creator is also a person_id which has the name george ,there are all in the same table so im confused i also tried this in my edit controller

$creators_name = DB::table('Persons')
        ->select('person_name')
        ->where('Persons.person_id,'=',Persons.creator_id)
        ->where(Persons.person_id,'=',$id)
        ->get();

I need something like this to call it in my blade !

Upvotes: 0

Views: 768

Answers (1)

Shalu Singhal
Shalu Singhal

Reputation: 563

Try this query

SELECT person.name as personName, creator.name as creatorName
FROM person
JOIN person AS creator ON creator.id = person.creator_id

Update

in laravel way

$result = DB::table('Persons')
        ->join('Persons as creator', 'creator.id', '=', 'Persons.creator_id')
        ->select('Persons.name as personName', 'creator.name as creatorName')
        ->where(Persons.id, '=', $id)
        ->get();

I am assumming you have primary key or person_id as id

Upvotes: 1

Related Questions