テーブルの例を次に示します。
クライアント
╔══════════╦════════════╗
║ GROUP_ID ║ GROUP_NAME ║
╠══════════╬════════════╣
║ abc ║ xex ║
║ def ║ tet ║
╚══════════╩════════════╝
チーム
╔════════╦════════════╗
║ ACT_ID ║ GROUP_NAME ║
╠════════╬════════════╣
║ 44 ║ xex ║
║ 32 ║ tet ║
╚════════╩════════════╝
行動
╔════╦════════════╗
║ ID ║ STATE ║
╠════╬════════════╣
║ 44 ║ complete ║
║ 58 ║ incomplete ║
╚════╩════════════╝
act_id
in tableは tableにteams
も存在することに注意してくださいactions
id
group_id
とgroup_name
の2 つの列をgroup_name
持つテーブルを選択したいと考えてact_id
います state
。
私は次のようなことをしています:
SELECT group_id AND group_name
FROM clients
WHERE group_name IN (SELECT group_name
FROM teams, actions
WHERE teams.act_id = actions.id
AND actions.state IS complete)
これは正しいです ?
みたいなことも考えました
SELECT group_id AND group_name
FROM clients
WHERE group_name IN (SELECT group_name
FROM teams
WHERE act_id IN (SELECT id
FROM actions
WHERE teams.act_id = actions.id.
AND state IS complete))
上記のどちらかが正しいですか?
私が取得しようとしているテーブルは明らかにこれです:
╔══════════╦════════════╗
║ GROUP_ID ║ GROUP_NAME ║
╠══════════╬════════════╣
║ abc ║ xex ║
╚══════════╩════════════╝