2016-07-30 8 views
1

Ich habe ein paar Probleme mit dem Versuch, alle Daten aus dieser Datenbank in einer Abfrage zu bekommen.Wie mache ich eine Join-Abfrage in MySQL auf diesem Schema

Hier ist die Database scheme

Ich weiß, dass es eine Möglichkeit, dies zu tun mit einem Join, aber ich bin nicht sicher, wie. Ich brauche alle Daten aus Fragebogen, Buchung und Kunden. Ich denke, ich muss auf der Buchung hat Kunden, aber ich bin mir nicht sicher.

Im Moment habe ich so etwas wie dieses

SELECT * 
FROM Booking,Questionaires,Customers 
WHERE accepted = 0 
JOIN ON Booking_idBooking = Customers_idCustomers 

mir jemand helfen?

Vielen Dank im Voraus!

+0

Beispieldaten zur Verfügung, und * die gewünschten Ergebnisse in der Frage *. Welche Informationen möchten Sie extrahieren? –

+0

Es ist unklar, welches Ergebnis Sie genau wollen. Und auch zu breit, da Sie uns keinen Code zeigen. – Jocelyn

+0

Ich brauche alle Daten von den Fragebögen, Kunden und Buchung. Aber ich bin mir nicht sicher, wie ich mich zusammenschließen soll. Ich habe versucht mit einem 'SELECT * FROM Buchung, Fragebögen, Kunden WHERE akzeptiert = 0 JOIN ON Booking_idBooking = Customers_idCustomers' – PieterJan

Antwort

0

Sie inneren nutzen könnten beitreten diese Weise

SELECT * FROM Booking_idBooking as BB 
INNER JOIN Booking as B on BB.Booking_idBooking = B.idBooking 
INNER JOIN Customers as C on BB.Customers_idCustomers = C.idCustomers 
INNER JOIN Questionaires as Q on Q.idQuestionaires = B.uestionaires_idQuestionaires 
WHERE B.accepted = 0 ; 
0

ich etwas zu tun, wie dies gehen würde, aber Sie müssen linke Ihren persönlichen Umständen Joins abhängig.

select 
    * 
from 
    customers c 

    inner join booking_has_customers bhs on 
    bhs.Customers_idCustomers = c.idCustomers 

    inner join booking b on 
    b.idBooking = booking_idBooking 

    inner join Questionaires q on 
    q.idQuestionaires = b.Questionairs_idQuestionairs 
where 
    b.accepted = 0; 

Nur eine Anmerkung, sollten Sie wirklich Ihre Namenskonventionen ändern.

Zum Beispiel booking ist singular, aber customers ist Plural in Ihrem Schema. Sie sollten konsistent sein. Auch etwas wie idBooking und booking_idBooking ist nicht toll - vielleicht id und booking_id verwenden. Jedenfalls nur Vorschläge.

Vielleicht möchten Sie auch etwas Zeit in das Schreiben von Joins investieren. Checkout w3schools für gute Beispiele.

0
SELECT b.*,q.*,c.* 
FROM Booking AS b 
JOIN Questionaries AS q ON q.idQuestionaries=b.Questionaries_idQuestionaries 
JOIN Booking_has_Customers AS bhc ON bhc.Booking_idBooking=b.idBooking 
JOIN Customers AS c ON c.idCustomers=bhs.Customers_idCustomers 
WHERE b.accepted=0 

Aber komm, Namen ändern ID in einfache ID und Sie haben:

SELECT b.*,q.*,c.* 
FROM Booking AS b 
JOIN Questionaries AS q ON q.id=b.id 
JOIN Booking_has_Customers AS bhc ON bhc.id=b.id 
JOIN Customers AS c ON c.id=bhs.id 
WHERE b.accepted=0