PHP MYSQL-Join-Abfrage. WÄHLEN Sie, WO UND IN ODER Logik Fehler
Hey alle. Ich glaube, ich habe einen Logik Fehler in meinem qry. Die Ausgabe ist korrekt, aber in Dreiergruppen. Ich habe gestarrt, auf diese für eine lange Zeit und nicht, es zu sehen. Kann jemand etwas Licht in diese Schuppen? Danke!!
Wollte auch noch hinzufügen, diese info als gut.
- $userid = 1
- $UserIDAList = (1,1,6)
- $UserIDBList = (2,3,1)
PHP-Code:
$result = mysql_query("SELECT TBL_ContactsList.ContactID, TBL_ContactName.FirstName FROM TBL_ContactsList, TBL_ContactName WHERE ((TBL_ContactName.NameID != $userid) AND (TBL_ContactsList.ContactID != $userid)) AND ((TBL_ContactName.NameID IN ($UserIDAList) OR TBL_ContactName.NameID IN $UserIDBList)))");
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
printf ("ID: %s Name: %s", $row[0], $row[1]);
echo "<br/>";
}
Nur die SQL-Abfrage (Lesbarkeit):
SELECT TBL_ContactsList.ContactID, TBL_ContactName.FirstName
FROM TBL_ContactsList, TBL_ContactName
WHERE ((TBL_ContactName.NameID != $userid) AND (TBL_ContactsList.ContactID != $userid))
AND ((TBL_ContactName.NameID IN ($UserIDAList) OR TBL_ContactName.NameID IN $UserIDBList)))
Ausgabe:
ID: 2 Name: Joe
ID: 3 Name: Joe
ID: 4 Name: Joe
ID: 2 Name: Jimbo
ID: 3 Name: Jimbo
ID: 4 Name: Jimbo
ID: 2 Name: Mike
ID: 3 Name: Mike
EDIT: Hier ist was ich landete mit. (kann nicht herausfinden, Einzug auf hier.)
Aber jetzt bin ich fehlt ein Eintrag aus der db.
$result = mysql_query("
SELECT cl.ContactID, cn.FirstName
FROM TBL_ContactName AS cn
INNER JOIN TBL_ContactsList AS cl
ON cl.ContactID = cn.NameID
WHERE
cn.NameID != $userid
AND (
cn.NameID IN ($UserIDBList) OR cn.NameID IN ($UserIDAList)
)
");
Die Ausgabe sieht wie folgt aus.
ID: 2 Name: Joe
ID: 3 Name: Jimbo'
Aber wenn ich LEFT JOIN bekomme ich diese. In der Nähe, aber immer noch fehlenden ID.
ID: 2 Name: Joe
ID: 3 Name: Jimbo
ID: Name: Mike
Irgendwelche Ideen?? Danke!
- Statt
FROM TBL_ContactsList, TBL_ContactName
sollten Sie versuchen, ein LINKS-oder RIGHT join, je nach Ihrer Tabelle struct - hey johnp, du hast Recht. aus allen Kommentaren, war es die VERKNÜPFUNG AUF, dass ich fehlte. danke!
- Vielen Dank an alle! Ich ging mit @Arda und @dnl Antworten. Aber jetzt fehlt mir ein Eintrag in die Abfrage ein. Nach einigen versuchen, mit LEFT JOIN hat es fast, außer es fehlt die ID. Ich bearbeitet die Frage, über die mit dem code so weit und die Ausgabe.
- Einzug ist nicht schwer. Drücken Sie die Leertaste.
- ok, dachte ich, mein problem. Am Ende hatte ich zwei qrys, eine für UserIDA und UserIDB. Aber alle Hilfe im JOINs machen es möglich. Danke!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn ich deine SQL Struktur korrekt, ändern der SQL-wie sollte dies wohl beheben. Es ist zumindest eine einwandfreie Nutzung.
Sollten Sie Einrücken und Verknüpfung Ihrer SQL zur besseren Lesbarkeit
bitte feedback geben, ob das funktioniert für Sie heraus: