私はこの前にこの質問をしました:Between two tables how does one SELECT the table where the id of a specific value exists mysqlしかし、私はそれを十分にフレーズしなかったと感じます。2つのテーブルの間に特定の値のIDが存在するテーブルをSELECTする方法mysql(duplicate)
"ハイキング"データベースに2つのテーブルがあり、テーブル1は「フォレスト」と呼ばれ、テーブル2は「マウンテン」と呼ばれます。どちらのテーブルにもFOREIGN KEY
"Trip_id"があり、テーブル "Trip"(または何か、これは構成されている例)のPRIMARY KEY
で、AUTO_INCREMENT
です。トリップはマウンテンまたはフォレストのいずれかになる可能性があるため、2つのテーブルはTrip_idsを共有しません。また、それぞれには、他のテーブルと共有しない属性もあります。山は属性「温度」を持ち、森は属性「大気」を持っています。私が何をしたいのか、どちらかを抽出するかによって「温度」や「雰囲気」、山や森林がTrip_id値に74
SELECT Temperature FROM Mountain WHERE Trip_id = 74 OR
SELECT Atmosphere FROM Forest WHERE Trip_id = 74;
が含まれています(私は上記のコードは動作しません知っている)です。
私は、Javaを使用してこの問題を解決するに終わるんでした:
String sqlStatement = "SELECT Trip_id FROM Mountains WHERE Trip_id = 74";
if (/*(execute sql statement) == null*/){
//Use Forest (and Atmosphere)
}
else{
//Use Mountain (and Temperature)
}
は、しかし、MySQLでのステートメント場合は何があるので、すべてでは、この使用してMySQLを解決することが可能であった場合、私は思っていました。
私が考えていたのはSELECT * FROM FOREST OR MOUNTAIN WHERE Trip_id = 74 EXISTS;
です(私はこのコードはごみであり、完全に間違っていると知っていますが、私が目指していることを説明するのを助けることを願っています)。
P.S列が同じであれば、これが最良の答えのようになります。その答えを提供するためのGordon Linoffへ
select m.*
from mountains m
where m.trip_id = 74
union all
select f.*
from forests f
where f.trip_id = 74;
感謝。
https://www.youtube.com/watch?v=3YmMNpbFjp0 おかげでたくさんのような – Cornelius