2
私は以下のjson配列に類似したスキーマのmysqlテーブルを持っています。他の列に基づく値を持つ一時的な列を持つSELECT
[
{ "id": 1, "firstName": "Charles Montgomery", "lastName": "Burns", "managerId": 12},
{ "id": 2, "firstName": "Bart", "lastName": "Simpson", "managerId": 1},
{ "id": 3, "firstName": "Marge", "lastName": "Simpson", "managerId": 1},
{ "id": 4, "firstName": "Lisa", "lastName": "Simpson", "managerId": 1},
{ "id": 5, "firstName": "Maggie", "lastName": "Simpson", "managerId": 1},
{ "id": 6, "firstName": "Homer", "lastName": "Simpson", "managerId": 4},
{ "id": 7, "firstName": "Ned", "lastName": "Flanders", "managerId": 4},
{ "id": 8, "firstName": "Krusty", "lastName": "The Clown", "managerId": 2},
{ "id": 9, "firstName": "Waylon", "lastName": "Smithers", "managerId": 2},
{ "id": 10, "firstName": "Ralph", "lastName": "Wiggum", "managerId": 5},
{ "id": 11, "firstName": "Itchy", "lastName": "", "managerId": 5},
{ "id": 12, "firstName": "Comic Book Guy", "lastName": "", "managerId": 4}
]
managerId
フィールドは自己id
フィールドへの外部キーを参照しています。
id
フィールドから計算された "managerName"フィールドに、firstNameとlastNameを連結した列を追加するクエリを作成する必要があります。
以下は、私が試した(簡略化した)クエリです。私はこのWHERE managerId = id
が見える場所で実現
SELECT * ,
(SELECT CONCAT_WS(' ', firstName, lastName) FROM employee WHERE managerId = id) as managerName
FROM employee WHERE employee.id = ?;
が、私は正直に正しい値に一致するように配置するためにどのような条件を知らない:疑問符(nodejs中)mysql driverで埋めプレースホルダです。
誰でも手助けできますか?
EDIT 誰かが同じことをするとつまずくケースでは、私がhelpful articleを見つけました。例も似ています。
'e'と 'm'では、2つの異なるテーブルを参照していますか?これはすべて1つのテーブルにあります。 – Ketus
@Ketus - はい私は同じテーブルに参加しましたが、私は "m"を忘れてしまいました。もう一度やり直してください –
返信いただきありがとうございます。私はエラーが表示されませんが、Sql Workbenchは "LEFT JOIN employee m ON e.managerId = m.id"の近くに文法エラーを返すようにこの構文を初めて使用しています – Ketus