2017-06-06 26 views
1

enter image description here 上記の印刷画面で分かるように、2つのテーブルに1つのものがあるかどうかを確認することができます見つかった場合には1行全体を得る(論理1)。 2つのクエリを作成せずに。私は、 "ファジィ・トゥ・ジャスト"がテーブル1またはテーブル2にあるかどうかを調べ、データ行を取る必要があります。私は2つのクエリでそれをやっている...しかし、質問は、それは1つのクエリを使用してこの情報をチェックすることは可能ですか?マビは何か他に?最も効率的な方法は?一番いい方法?データベース内の何かを検索する(2) - SELECT - 2つのテーブルを検索する必要があります

@Gordon Linoffは私にこの与えた:

select (exists (select 1 from table1 where url = 'fajne-to-jest')) as in_table1, 
     (exists (select 1 from table2 where url = 'fajne-to-jest')) as in_table2; 

をしかし、これは生産:enter image description here

そして、私はこのように、この行からこの+のデータを生成するために照会したい:ここだ enter image description here

+0

どちらのIDにも「id」が返されますか? – Stavr00

+0

この行が両方のテーブルに存在する場合はどうなりますか? – spiil

+0

この正確な 'url'は両方のテーブルに存在しません。 @spiil –

答えて

2

これを素早く突き刺し、全くテストしていない。

select 
    IF(table1.id IS NULL, 0, 1) as table1, 
    IF(table2.id IS NULL, 0, 1) as table2, 
    COALESCE(table1.id, table2.id, "NONE") as id, 
    `master`.url 
from 
(select 'fajne-to-jest' as url) `master` 
left join table1 on table1.url = `master`.url 
left join table2 on table2.url = `master`.url 
; 

は、0,1、または両方のテーブルにあるかどうかにかかわらず、常に1つの行を指定する必要があります。あなたはURLはユニークなので、繰り返しは心配する必要はないはずだが、IDが一致しない場合、これはtable1を好む(どちらの表にもない場合は "NONE"を表示する)。

+0

うわー、素晴らしい作品です。 Nicee –

+0

このクエリをdetialで説明できますか? –

+0

「マスター」とは何ですか? –

関連する問題