・やりたい事
usersテーブルとfollowingテーブルを操作して、ユーザーのfollowed_id(そのユーザーをフォローしている単体のユーザー)を取り出す中間テーブルを作りたいです。
ユーザーをフォローしている全体のユーザーは取得できました。
app.get('/api/v1/users/:id/following', (req, res) => { const db = new sqlite3.Database(dbPath) const id = req.params.id db.all(`SELECT * FROM following LEFT JOIN users ON following.followed_id = users.id WHERE following_id = ${id};`, (err, rows) => { if (!rows) { res.status(404).send({"error": "not found!"}) } else { res.status(200).json(rows); } }) db.close(); })
次にapp.getで:idをフォローしている:id_2のusersテーブルを:idのfollowingテーブルに結合したいのですが
それを実現するコードが分からないです。
クエリ中にid_2をどのように書けばいいかご教授ください。
またそもそもid_2以外の方法を使うべきかコメントいただけると幸いです。
app.get('/api/v1/users/:id/following/:id_2', (req, res) => { const db = new sqlite3.Database(dbPath) const id = req.params.id const id_2 = req.params.id_2 db.get(`SELECT * FROM following LEFT JOIN users ON following.followed_id = $ WHERE following_id = ${id};`, (err, rows) => { if (!rows) { res.status(404).send({"error": "not found!"}) } else { res.status(200).json(rows) } }) db.close(); })
・usersテーブル INSERT INTO users (name, age) VALUES ("haruka", 23); INSERT INTO users (name, age) VALUES ("nagai", 45); INSERT INTO users (name, age) VALUES ("masaru", 37); INSERT INTO users (name, age) VALUES ("kawai", 60); INSERT INTO users (name, age) VALUES ("yamato", 26); ); 1|haruka|23|2021-01-20 10:52:03|2021-01-20 10:52:03|2021-01-25 2|nagai|45|2021-01-20 10:52:03|2021-01-20 10:52:03| 3|masaru|37|2021-01-20 10:52:03|2021-01-20 10:52:03| 4|kawai|60|2021-01-20 10:52:03|2021-01-20 10:52:03|1996-08-23 5|yamato|26|2021-01-20 10:52:05|2021-01-20 10:52:05|
・followingテーブル sqlite> INSERT INTO following (following_id, followed_id) values (1,2); sqlite> INSERT INTO following (following_id, followed_id) values (1,3); sqlite> INSERT INTO following (following_id, followed_id) values (1,4); sqlite> INSERT INTO following (following_id, followed_id) values (2,1); sqlite> INSERT INTO following (following_id, followed_id) values (2,3); sqlite> INSERT INTO following (following_id, followed_id) values (3,4); sqlite> INSERT INTO following (following_id, followed_id) values (4,3); 1|1|2|2021-01-25 16:43:06|2021-01-25 16:43:06 2|1|3|2021-01-25 16:43:06|2021-01-25 16:43:06 3|1|4|2021-01-25 16:43:06|2021-01-25 16:43:06 4|2|1|2021-01-25 16:43:06|2021-01-25 16:43:06 5|2|3|2021-01-25 16:43:06|2021-01-25 16:43:06 6|3|4|2021-01-25 16:43:06|2021-01-25 16:43:06 7|4|3|2021-01-25 16:43:09|2021-01-25 16:43:09 id=1はid=2, 3, 4にフォローされている形です。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/08 03:40