2016-07-30 7 views
1

このデータベースからすべてのデータを1つのクエリで取得しようとするといくつか問題があります。ここでこのスキームでmysqlの結合クエリを実行するにはどうすればいいですか?

Database scheme

である私が参加してこれを行う方法があることを知っているが、私はどのようにわかりません。 アンケート、予約、および顧客からのすべてのデータが必要です。 私は、予約を持っている顧客に参加しなければならないと思いますが、わかりません。現時点で

私はこのような何かが

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

は誰も私を助けることができますか?

ありがとうございます!あなたが内部使用することができ

+0

は、サンプルデータを提供し、所望の結果は、問題の*。どのような情報を抽出したいですか? –

+0

あなたがどんな結果を望んでいるかは不明です。また、コードを表示していないので、広すぎます。 – Jocelyn

+0

質問、顧客、予約のすべてのデータが必要です。しかし、私はこれらを一緒に結合する方法がわかりません。私は 'SELECT * FROM予約、質問、顧客で試してきました。受け入れ= 0 JOIN ON Booking_idBooking = Customers_idCustomers' – PieterJan

答えて

0

は、このよう

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

に参加し、私はこのような何かをやって行くだろうが、あなたは、左が1つのあなたの状況に応じて参加する必要があるかもしれません。

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; 

本当に命名規則を変更する必要があります。

たとえば、bookingは特異ですが、customersはスキーマ内で複数です。彼らは一貫しているべきです。また、idBookingbooking_idBookingのようなものはあまり良くありません - おそらくidbooking_idを使用してください。とにかくちょうど提案。

また、結合の書き方を学ぶのに少し時間を費やすこともできます。良い例はw3schoolsをチェックアウトしてください。

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 

しかしに来て、変更ID、単純なIDに名前とあなたが持っているでしょう:

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 
関連する問題