テーブルのスキーマを示していません。それはあなたを助けることよりも難しくなります。
car1
列または列または ...を取得しようとしている場合car2
、少なくとも 2 つの問題があります。
- テーブルが正しく設計されていません。
- クエリの一部として列 (またはテーブル) の名前を作成することはできません。
顧客の各車に関する情報は、顧客に関する情報とは別のテーブルに入れる必要があります。したがって、顧客の名前が「Joe」であるという情報は、1 つのテーブルに属します。彼がランボルギーニを運転しているという事実は、別の表に記録する必要があります。車のテーブルには、顧客ごとに複数のレコードが存在する場合があります。
2 つのテーブルを結合する必要もあります。構文的に正しくないクエリはそれを試みません。
列を持つ 2 つのテーブルがあります。
おそらく表示されていませんが、 にある種の「顧客」列があるでしょうCustomers_Cars
。実際、おそらく各テーブルに「顧客 ID」列が必要です。さらに、Customers_Cars
テーブルは次のようにする必要があります。
- Customers_Cars : CustomerID、CarNum、CarInfo、MainVehicle
MainVehicle
ここで、はブール値フラグであり、顧客ごとに true とタグ付けされたエントリが 1 つあると想定しています。
SELECT ステートメントは次のようになります。
SELECT U.*,
C.CarInfo
FROM Customers AS U
JOIN Customers_Cars AS C ON C.CustomerID = U.CustomerID
WHERE C.MainVehicle = TRUE
AND U.Customer = 'Joe'
AND U.Type = 'CoolCustomer';