0

問題を引き起こしているクエリがあります。これを行う方法がわかりません

TICKETS テーブルからレコードを取得し、それを他の 2 つのテーブルと結合する必要があります。それは問題ではありません。レコード内の値の 1 つを別のテーブル内の値に置き換える必要があります。例:

テーブルチケット:

numint user_id type desc attach プライオリティ ステータス 日付 割り当て

テーブル ユーザー

numint company_id 名前 電子メール ユーザー名 パスワード ps セキュリティトークン 日付

テーブル会社

数値名

記録例

会社名 - ユーザー名 - タイプ - 役職 - 優先度 - ステータス - 日付 - 割り当て

"someCompany" - "someUser" - "someTitle" - 1 - "open" - "yyy/mm/dd" - 2(user_id)

返されたレコードの割り当てフィールドで、ユーザーテーブルの対応する値に置き換える必要があります 0 (ゼロ) でない場合

これはこれまでの私のクエリです

SELECT tickets.numint, tickets.type, tickets.title, tickets.description,
       tickets.priority, tickets.status, tickets.date,
       users.name AS user_name, companies.name AS company_name,
       CASE WHEN tickets.assignation=0 THEN 'not-assigned'
       ELSE ????????? END AS assignation
       FROM tickets
       LEFT JOIN users ON tickets.user_id = users.numint
       LEFT JOIN companies ON users.company_id = companies.numint

その値を置き換える方法がわからない、または結合後に CASE を使用する必要があるかどうか...

4

1 に答える 1

2

Do you want to show username as assignation. use users.name in case.

SELECT tickets.numint, tickets.type, tickets.title, tickets.description,
       tickets.priority, tickets.status, tickets.date,
       users.name AS user_name, companies.name AS company_name,
CASE WHEN tickets.assignation=0 THEN 'not-assigned'
ELSE users1.name END AS assignation
FROM tickets
LEFT JOIN users ON tickets.user_id = users.numint
LEFT JOIN companies ON users.company_id = companies.numint
LEFT JOIN users AS users1 ON tickets.assignation = users1.numint
于 2013-09-27T14:37:01.023 に答える