Also, ich schreibe eine Multi-Abfrage für mein Programm, die überprüft, ob ein Benutzer eine Seite angesehen hat oder nicht. Wenn sie es nicht angezeigt haben, wird ein Datensatz in einer Tabelle mit dem Namen views
erstellt, und dann wird ein Datensatz mit dem Namen numViews
in einer Tabelle mit dem Namen pages
aktualisiert, während, wenn sie es bereits angezeigt haben, passiert nichts.MySQL - Aktualisierung einer Tabelle IF-Datensatz existiert nicht in einer anderen Tabelle
Ich habe den Code für die Einfügung des Datensatzes auf views
geschrieben, die alle Datensätze einzigartig hält. Das Problem, mit dem ich konfrontiert bin, ist, wenn es darum geht, einen Datensatz in pages
zu aktualisieren.
In Pseudo Hinsicht ist die folgende, was ich will zu erreichen: einen Rekord
if (record_exits_in_table_named_views == false) {
UPDATE record IN pages
INSERT record INTO views
}
Hier finden Sie meine Anfrage für das Hinzufügen von:
INSERT INTO views
(`pageID`, `viewerID`)
SELECT
T.*
FROM
(SELECT
'.$this->pageID.' pageID,
'.$_SESSION['userID'].' viewerID
)
T LEFT JOIN
views
ON
views.creationID = T.pageID
AND
views.viewerID = T.viewerID
WHERE
views.viewerID IS NULL;
Alle Hilfe ist willkommen. Dank
Sie könnten der Datenbank-Handle lassen it: Erstellen Sie einen After-Insert-Trigger für die View-Tabelle, der die Pages-Tabelle aktualisiert oder einfach den Wert aus den Einträgen in Sichten berechnet, wenn Sie sie brauchen, so dass Sie den Wert in Seiten gar nicht benötigen (mit dem Trigger) wäre eigentlich nur eine OP timization, um es zu beschleunigen). – Solarflare