Hier sind alle möglichen Abfragen auf den beiden Tabellen, Studenten und Zahlung.
students name id id_student datepayment
1 Lisa 1 1 2017-01-01
2 2 1 2017-02-03
3 Asher 3 2 2017-03-05
4 Lee 4 1 2017-03-03
Die Abfrage
select students.name, payment.datepayment
FROM students, payment
where students.id_student = payment.id_student;
wird dieses Ergebnis geben - alle Namen der Schüler, die in der Tabelle Zahlungs
name datepayment
Lisa 2017-01-01
Lisa 2017-02-03
Lisa 2017-03-03
2017-03-05
Die Abfrage
SELECT s.name, p.datepayment
FROM
students s
LEFT OUTER JOIN payment p ON s.id_student = p.id_student;
gibt dieses Ergebnis id_student haben : Alles Gestüt ents Namen aus der linken Tabelle (Studenten), die nicht in der Tabelle Zahlung hat oder id_student:
name datepayment
Lisa 2017-01-01
Lisa 2017-02-03
2017-03-05
Lisa 2017-03-03
Asher NULL
Lee NULL
Die Abfrage
SELECT s.name, p.datepayment
FROM
students s
RIGHT OUTER JOIN payment p ON s.id_student = p.id_student;
wird dieses Ergebnis geben - alles aus RIGHT Tabelle Zahlung und nur Studenten Namen, die
name datepayment
Lisa 2017-01-01
Lisa 2017-02-03
2017-03-05
Lisa 2017-03-03
Die Abfrage
SELECT s.name, p.datepayment
FROM
students s
INNER JOIN payment p ON s.id_student = p.id_student;
0123: in Tabelle Zahlung haben id_student
wird dieses Ergebnis geben - alle Schüler Namen, die in der Tabelle Zahlungs id_student haben:
name datepayment
Lisa 2017-01-01
Lisa 2017-02-03
Lisa 2017-03-03
2017-03-05
Sie nicht 'mysql_ *' Funktionen in neuen Code verwenden sollten. Lernen Sie PDO oder MySQLi und wie Sie parametrisierte Abfragen verwenden. – Qirel