1

私は2つのテーブルを持っています

name    id

man1    456
man2    123
man3    789

ノート

content id

testing 123
hello   456

peopleその人のメモが存在する場合、テーブルからレコードを選択するクエリが 2 つあります。

SELECT * FROM PEOPLE WHERE ID IN (SELECT ID FROM NOTES)

name    id

man1    456
man2    123

SELECT * FROM PEOPLE WHERE ID NOT IN (メモから ID を選択)

name    id

man3    789

(実際のテーブルではなく) 結果セットに列を作成し、メモが存在するかどうかに基づいてフィールドの値を設定したいと考えています。

name    id  does_note_exist

man1    456 yes
man2    123 yes
man3    789 no

これを行うための適切な構文は何ですか? このようなものが私が探しているものです:

IF ID IN (SELECT ID FROM NOTES)
   does_note_exist = yes        

IF ID NOT IN (SELECT ID FROM NOTES)
   does_note_exist = no
4

2 に答える 2

3

必要なものLEFT OUTER JOIN:

SELECT 
    p.id, 
    p.name,
    CASE WHEN n.id IS NULL THEN 'no' ELSE 'yes' END AS does_note_exist
FROM people p
LEFT OUTER JOIN notes n
ON n.id = p.id
GROUP BY n.id
于 2012-04-05T18:39:43.397 に答える
0

それを行う方法はたくさんあります-ケースステートメントを使用すると思います: http://dev.mysql.com/doc/refman/5.0/en/case-statement.html

于 2012-04-05T18:38:10.043 に答える