副問合せ?の書き方
データの副問合せではまってます。
助言いただければ幸いです。
やりたい事
B_IDを起点に、C表E_IDのNAMEを表示。またB表に紐付くA表とC表のE_IDを比較し、一致する場合○をつける。
A表 A_ID,T_ID,E_ID :(A_IDプライマリキー)
B表 B_ID,T_ID :(B_IDプライマリキー)
C表 C_ID,B_ID,E_ID :(C_IDプライマリキー)
E表 E_ID,NAME :(E_IDプライマリキー)
要件
・取得したいのは以下の条件のE表のNAME。
・C表のE_IDでNAMEを取得する。
・C表とA表をE_IDで比較し、一致する場合NAMEの横に「○」をつける。
・B表のB_IDを指定し、B表(T_ID)と一致するA表とB表(B_ID)と一致するC表を比較。
上記の実行のために以下のSQLを作成しましたが、副問合せで複数行戻るためエラーが出て、
条件をはずすと結果が思うようにでません。
できればSQL文でやりたいのですが
こういう場合はどうすればいいのでしょうか?
わかりづらいと思いますがよろしくお願いします。
SELECT E.NAME,
IF(C.C_ID = (SELECT W.C_ID FROM C AS W JOIN B AS X ON W.B_ID=X.B_ID
JOIN A AS Y ON Y.T_ID=X.T_ID WHERE X.B_ID=B.B_ID AND W.E_ID=Y.E_ID),'○','')
FROM A,B,C,E WHERE C.E_ID=E.E_ID AND B.B_ID=1;
バージョン:MySQL5.0