2016-09-14 9 views
-1

Ich habe Probleme bekommen Ergebnisse aus zwei Datenbanktabelle. hier ist das, was ich habe:php, mysql join Tabelle Spalten mit einer anderen Tabelle Zeilen

table A: 'courses' 

math | history | geography | computer 
1  | 2  | 3   | 4 

und Tabelle B

user_id | classroom_id | course 
1  | 5   | 3 
1  | 5   | 4 
1  | 6   | 2 

ich auf eine der Tabelle A zurück für jede Schleife, aber ich möchte überprüfen, welche Kurse der Benutzer 1 wahr oder falsch zurückgeben muss auf jeder Tabelle eine Spalte. Jede Hilfe wird geschätzt. Ich brauche nicht Neinstimmen helfen :(

+0

Haben Sie wirklich die Spalten für jedes Thema in 'Tabelle A' erstellt? – Shaharyar

+3

Wenn es nicht zu spät ist, um Ihre Tabellen neu zu strukturieren, würde ich wirklich vorschlagen, Ihre "Kurs" -Tabelle zu zwei Spalten, 'course_id' und' course_name', zu überdenken. – Santi

+0

Nicht für jede Spalte, zum Beispiel, Benutzer 1 hat nur 2 und ich erstelle nur 2 Zeilen in Tabelle B –

Antwort

1

Sie haben Ihre Datenbank falsch einrichten, glaube ich. Was Sie wollen, ist so etwas wie

Table_A: 
PKEY | Course 

1 | Math 
2 | History 
3 | Geography 
4 | Computer 



Table_B: 
user_id | classroom_id | course 
1  | 5   | 3 
1  | 5   | 4 
1  | 6   | 2 

Dann könnten Sie etwas tun, wie

SELECT 
TableA.PKEY, 
TableA.Course, 
TableB.user_id, 
TableB.classroom_id, 
TableB.course, 
FROM TableA 
LEFT JOIN TableB 
ON TableA.PKEY = TableB.course 

^^ Dies gibt die Daten aus BEIDEN Tabellen zurück

Sie sehen diese Zeile

BIG GOTCHA: Stellen Sie sicher, dass die Spalten für beide dieser ^^^ GENAU identisch eingerichtet sind. Wenn zum Beispiel IF TableA.PKEY ein UNSIGNED INT (10) ist, dann MUSS auch TableB.course UNSIGNED INT (10) sein. Sie müssen identisch sein, damit der Join korrekt funktioniert.

+1

Ich denke du bist richtig Mann, lass es mich versuchen. Danke für Ihre Antwort –

+1

Jederzeit. Ich hatte einige Probleme mit SQL, als ich anfing. Immer noch in der Tat ... XD –

+1

Dito: Hatte eine Hölle Zeit bricht die Mentalität, dass "Datenbank = Tabellenkalkulation". Denken Sie darüber nach, DBs als Datensätze zu definieren, und Abfragen sind nur festgelegte Operationen. –

Verwandte Themen