Hallo!
Ich lerne gerade Web-Entwicklung und habe zu einer SQL-Abfrage mal eine Frage.
Gegeben sind die folgenden beiden Tabellen:
posts
likes
So,
wenn User 5 den Beitrag mit der ID 6 von User 7 liked,
steht im Endeffekt in der likes-Tabelle folgendes:
id = 1
user_id = 5
post_id = 6
Jetzt möchte ich aber mittels dem Laravel-QueryBuilder, ich denke am besten
mit einer Join-Abfrage folgender erreichen:
Ich möchte alle Posts aus der posts-Tabelle haben. Im Ergebnis aber zusätzlich
nur, falls bei dem entsprechenden Post ein Like vorhanden ist, die Daten aus
der likes-Tabelle.
Wie mache ich das am beste? Mache ich einen einfachen Join, habe ich das
Problem, dass die Daten aus der likes-Tabelle auch versucht werden abzu
rufen - auch, wenn es für den entsprechenden Post gar kein Like gibt:
Vielleicht könnt ihr mir einen Tipp geben, wie ich das umsetzen kann?
LG, Dennis
Ich lerne gerade Web-Entwicklung und habe zu einer SQL-Abfrage mal eine Frage.
Gegeben sind die folgenden beiden Tabellen:
posts
- id
- user_id
- posttext
likes
- id
- user_id
- post_id
So,
wenn User 5 den Beitrag mit der ID 6 von User 7 liked,
steht im Endeffekt in der likes-Tabelle folgendes:
id = 1
user_id = 5
post_id = 6
Jetzt möchte ich aber mittels dem Laravel-QueryBuilder, ich denke am besten
mit einer Join-Abfrage folgender erreichen:
Ich möchte alle Posts aus der posts-Tabelle haben. Im Ergebnis aber zusätzlich
nur, falls bei dem entsprechenden Post ein Like vorhanden ist, die Daten aus
der likes-Tabelle.
Wie mache ich das am beste? Mache ich einen einfachen Join, habe ich das
Problem, dass die Daten aus der likes-Tabelle auch versucht werden abzu
rufen - auch, wenn es für den entsprechenden Post gar kein Like gibt:
PHP:
$posts = DB::table('posts')
->leftJoin('likes_post_id', 'posts.id', '=', 'likes.user_id')
->where('posts.user_id', Auth::user()->id)
->get();
Vielleicht könnt ihr mir einen Tipp geben, wie ich das umsetzen kann?
LG, Dennis