1

印刷された表

ここに印刷されたテーブルがあり、Tech_id、clients_id、job_id、part_id がテーブル/列にも対応するキーを入力する必要があるテーブルを結合しようとするクエリを発行します。

これが私のクエリです:

SELECT * FROM work_orders, technicians as tech, parts_list as parts, job_types as    job, clients as client 
LEFT JOIN technicians ON tech_id = technicians.tech_name
LEFT JOIN parts_list ON part_id = parts_list.Part_Name
LEFT JOIN job_types ON job_id = job_types.Job_Name
LEFT JOIN clients ON clients_id = clients.client_name

複数の異なるバリエーションをいじりました。これは構文が正しいようですが、今は次のようになります: on 句の列 'clients_id' はあいまいです

クライアントだけでなく、他の人にも起こると確信しています。上の図のようにテーブルを印刷できるようにしたいのですが、クライアントがリストされています。1つのクエリでも実行できますか? ありがとう。

4

2 に答える 2

1

2 つの問題があります。

最初に (これはあなたの問題ではないかもしれませんが、それは「良い習慣」です)、異なるテーブルに同じ名前のフィールドを実際に持つことができるので、SELECT * を使用しないでください。

これは、Select 句で * を避ける (多くの) 正当な理由の 1 つです。

次に、主な問題は、from 句でテーブルを選択し、次に結合して選択することです。

問題のある行:

FROM work_orders, technicians as tech, parts_list as parts, job_types as    job, clients as client

だから(あなたのテーブル構造がわからないので、エラーかもしれませんが、アイデアはあります)

SELECT 
  w.client_id, 
  t.tech_name
  --etc 
 FROM work_orders w
LEFT JOIN technicians t ON c.tech_id = t.tech_name
LEFT JOIN parts_list  p ON c.part_id = p.Part_Name
LEFT JOIN job_types j ON w.job_id = j.Job_Name
LEFT JOIN clients c ON w.clients_id = c.client_name
于 2013-02-07T21:25:40.177 に答える
0

これは、clients_id が複数のテーブルに存在することを意味します。必要なものを指定する必要があります。たとえば、clients テーブルの client_id が必要な場合は、SELECT client.clients_id を実行します。

質問にリストされているすべてのフィールドがクライアントテーブルにある場合は、次のことができます。

SELECT clients.* FROM work_orders, technicians as tech, parts_list as parts, job_types as    job, clients as client 
LEFT JOIN technicians ON tech_id = technicians.tech_name
LEFT JOIN parts_list ON part_id = parts_list.Part_Name
LEFT JOIN job_types ON job_id = job_types.Job_Name
LEFT JOIN clients ON clients_id = clients.client_name
于 2013-02-07T21:18:32.933 に答える