下一個數據庫: WHERE IN查詢?
,我需要選擇誰在他們自己的星球一直ONLY在戰鬥中的所有士兵和我沒有的我怎麼能做出任何的想法。
這是我試過的。
SELECT id_soldier, name
FROM soldier, battle_log, battle
WHERE IN(...soldier.planet_id = battle.id_planet_battle...)
下一個數據庫: WHERE IN查詢?
,我需要選擇誰在他們自己的星球一直ONLY在戰鬥中的所有士兵和我沒有的我怎麼能做出任何的想法。
這是我試過的。
SELECT id_soldier, name
FROM soldier, battle_log, battle
WHERE IN(...soldier.planet_id = battle.id_planet_battle...)
因爲我沒有訪問數據庫我不能測試它,但你可以試試這個嗎?
SELECT id_soldier, name
FROM soldier s
LEFT JOIN battle_log l ON s.id_soldier = l.soldier_id
LEFT JOIN battle b ON l.battle_id = b.id_battle
WHERE s.planet_id = b.id_planet_battle
如果它返回一個錯誤只是讓我知道,我們會嘗試修復它。
可以使用not exists
運營商排除誰參加戰鬥其他星球上的士兵:
SELECT *
FROM soldier s
WHERE NOT EXISTS (SELECT *
FROM battle b
JOIN battle_log bl ON b.id_battle = bl.battle_id
WHERE bl.soldier_id = s.id_soldier AND
b.id_planet_battle != s.planet_id)
謝謝,這個工程。你幫了我很多:D – suarsenegger
這工作了。 – suarsenegger
@javipedrera很高興幫助 – nowhere