Ich versuche, zwei Tabellen mit dem Larawel-Abfrage-Builder zu verbinden, aber ich habe ein Problem mit dem Abfrage-Generator bekommen das gewünschte Ergebnis, kann ich es aber ganz einfach mit einem rohen SQL-Anweisung. Ich möchte einfach alle Mod-Zeilen mit dem entsprechenden Wert in der tag
Spalte in der tags
Tabelle zurückgeben.Laravel Querybuilder Beitreten auf LIKE
Schema
--------------
mods
--------------
id - int - (primary key)
name - varchar
--------------
tags
--------------
id - int
modid - int - (primary key of its parent mod)
tag - varchar
Arbeits SQL-Abfrage
SELECT * FROM mod JOIN tags ON tags.tag LIKE '%FPS%'
Query Builder
DB::table('mods')
->join('tags', function ($join) {
$join->on('tags.tag', 'like', '%FPS%');
})
->get();
Derzeit wird dies mir zu sagen: Unknown column '%FPS%' in 'on clause'
aber ich bin nicht sicher, wie sonst diese zu strukturieren. Ich beabsichtige, mehr orOn
Klauseln hinzuzufügen, sowie ich will Ergebnisse zu mehreren Tags erhalten, aber zuerst möchte ich nur ein einzelnes Tag arbeiten.
Schätzen Sie jede Hilfe.
ist ‚FPS‘ Konstante oder eine Spalte? – sumit
Sorry 'Tag' ist die Spalte, FPS ist der Wert. Ich werde das Schema veröffentlichen. Ich habe diesen FPS aus Gründen der Kürze fest programmiert, aber in der Praxis wird es eine Variable sein. – XanT
Der dritte Parameter von Join in Laravel muss eine Spalte einer vorhandenen Tabelle sein. –