私はSQLクエリの学習に取り組んでいますが、より効率的なことを実際には分かっていません。このSQLクエリのより効率的なバージョンですか?
これは私のコードです:
SELECT A.CustName, A.CustID, C.RestName,
CONCAT(A.Address, ' - ', C.Address, ' + ', C.FoodTime, ' = ', A.Address - C.Address + C.FoodTime)
AS DeliveryTime, B.OrderID
FROM (SELECT * FROM Customers) AS A
LEFT JOIN (SELECT * FROM Orders) AS B
ON A.CustID = B.CustID
LEFT JOIN (SELECT * FROM Restaurants) AS C
ON B.RestID = C.RestID
ORDER BY A.CustID;
3つのテーブル、Customers
、Restaurants
、およびOrders
があります。顧客には、CustID、CustName、およびAddressが含まれています。レストランにRestID、RestName、Address、FoodTimeが含まれています。注文には、CustID、RestID、およびOrderIDが含まれています。
私はこれが次元と事実の練習であると信じていますが、私はこれらが表の中で相互作用する正しい方法について100%ではありません。誰かがそれについて良い説明をしているなら、私はすべての耳(目)です。ありがとう!
「CONCAT」で何を達成しようとしていますか? 'Address'列はどのような型ですか? –
CONCATは、その列で何が起こっているかを表に表示するだけです。これらのセルは、この質問のために単純に: A.Address - C.Address + C.FoodTime です。 – SteveK
何を考えているのか。 '(顧客からのSELECT *から)AS B'ではなく、「顧客AS B」からですか? –