0

MySQL テーブルの同じフィールドに対してクエリを実行する必要がありますが、パラメーターは異なります。これは私の質問です。発生する問題は、MySQL が users_name があいまいだと言っていることです。

SELECT projects_id, 
projects_users_id,projects_companies_id,projects_name,
projects_description,project_registered_date,
projects_users_id_register,
users.users_name as userInCharge,companies.companies_name as company,
users.users_name as user_register FROM projects 
LEFT JOIN users as userInCharge ON (users_id = projects_users_id) 
LEFT JOIN users as register ON (users_id=projects_users_id_register)
LEFT JOIN companies ON (companies_id = projects_companies_id) ORDER BY projects_id DESC 

私の目標は、プロジェクトの担当者とプロジェクトを登録した人の両方の ID を取得することです。どうすればいいですか?

4

3 に答える 3

2

あなたのあいまいさは、次のLEFT JOIN条項のために生じています。

LEFT JOIN users as userInCharge ON (users_id = projects_users_id) 
LEFT JOIN users as register ON (users_id=projects_users_id_register)

どこから来ているのかを指定する必要がありますusers_id(はい - 同じテーブルから来ていることは知っていますが、SQL は少し遅い場合があります) 試してください:

LEFT JOIN users as userInCharge ON (userInCharge.users_id = projects_users_id) 
LEFT JOIN users as register ON (register.users_id=projects_users_id_register)
于 2013-10-24T22:54:39.620 に答える
0

users.users_name ではなく、テーブル エイリアスを使用します。

また、ジョインでも。

于 2013-10-24T22:53:43.830 に答える
0

userstable asuserInChargeでJOIN するregisterため、列を指定するときにこれらの名前を使用します

userInCharge.users_name as userInCharge
register.users_name as user_register

それ以外の

users.users_name as userInCharge
users.users_name as user_register
于 2013-10-24T22:54:03.580 に答える