SQL
1CREATE TABLE `user` ( 2 userid INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, 3 name varchar(100) NOT NULL, 4 pass varchar(100) NOT NULL 5) ;
SQL
1INSERT INTO `user` (`name`, `pass`) VALUES 2('Chandler', 'temp'), ('Ken', 'temp'), ('Ross', 'temp'), ('Joye', 'temp'), ('Tag', 'temp'), 3('Matt', 'temp'), ('Rachel', 'temp'), ('Bob', 'temp'), ('Lisa', 'temp'), ('Hanks', 'temp'), 4('Ben', 'temp'), ('Kazu', 'temp'), ('Tobby', 'temp'), ('David', 'temp'), ('Mike', 'temp'), 5('Gary', 'temp'), ('Ellen', 'temp'), ('Emilly', 'temp'), ('Carol', 'temp'), ('Frank', 'temp'); 6
SQL
1CREATE TABLE `follow` ( 2 id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, 3 userid int(11) NOT NULL, 4 followingidid int(11) NOT NULL, 5 status int(11) NOT NULL 6); 7
SQL
1INSERT INTO `follow` (`userid`,`followingidid`, `status`) VALUES 2(1,2,1),(1,3,1),(1,7,1),(1,8,1),(4,3,1), 3(4,8,1),(4,7,1),(6,10,1),(7,10,2),(19,20,2), 4(8,10,1),(2,3,1)(15,1,1),(14,1,1),(13,1,1) 5(12,1,1),(11,1,2),(1,9,2); 6
現在SNSサイトを作成しております。下のテーブルが友達関係を表したテーブルになっており、1が相互フォロー2が申請中、3が申請却下となっております。
このテーブルに仮にユーザー1がユーザー4に友達申請(userid1,followingid4,2)した場合は単に行を挿入するだけの処理でいいと思います。
このSNSサイトの条件上、画面上に表示されリクエスト申請できる状態にあるユーザーは
現在使用のユーザーの友達であるが、使用中ユーザーとは友達でない関係です。FaceBookの友達かも機能と同じイメージです。
ですので、
ユーザー1がユーザー4に友達申請に申請を送ることができる時点で、このテーブルには
(userid1,followingid4,1)もしくは(userid4,followingid1,1)いう数値がないことは保証されますが、(userid1,followingid4,2)
は起こり得る気がするので、確認がしたいです。
ユーザー1がユーザー4に友達申請に申請を送る際にuseridに1,followingidに4、又はuseridに4,followingidに1
が入った行が存在するか確認するSQL文はどうなりますか。CASE文ですか、イマイチわからないのでご教授お願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/18 13:48
2018/12/18 14:05
2018/12/19 07:31