SQL の検索、検索、比較

okwaves2024-01-25  9

SQL に 2 つのテーブルがあります。

表 1 には

….      | phone_number | Token | data_date

表 2 には

….     | Token | name | Data_date

私がやりたいのは、1 から電話番号を検索することです。これによりトークンが得られ、次にこれを使って表 2 を調べ、指定された日付の名前を得ることができます。

試してみた 交差....

今試してみました

select table1, Phone_number, token, data_date 
from table1 
where CALL_ANI='0797111111' 
  and data_date = '1-sep-20'

union

SELECT  Token, name, Data_date 
FROM table2

しかし、問題 1 は日付をフィルタリングしないことです。問題 2 はアイテムを検索しているとは思えません。

私がこれについて行っていることは完全に間違っていると思いますが、実際の例の助けがあれば本当に感謝します

私が望む結果は次のとおりです 電話番号を入力すると、その日付の名前が表示されます

1

リストとは何ですか?また、どのようなデータベースを使用していますか?

– Vボカ

2020 年 9 月 3 日 11:43

1

これらのものは「テーブル」と呼ばれます。リレーショナル データベースでは「リスト」ではありません。 2 つのテーブル間の UNION ではなく JOIN を探していると思います。

– 

user330315

2020 年 9 月 3 日 11:43

2

数行のデータと予想される結果を入力してください

– Vボカ

2020 年 9 月 3 日 11:44

2

@イアン。 。 。使用しているデータベースを質問にタグ付けしてください。

– ゴードン・リノフ

2020 年 9 月 3 日 11:44

SQL 結合については、これを参照してください: w3schools.com/sql/sql_join.asp

– ラック

2020 年 9 月 3 日 13:10



------------------------

JOIN が必要のようです:

select t1.*, t2.name
from table1 t1
inner join table2 t2 on t2.token = t1.token
where t1.call_ani = '0797111111' and t1.data_date = date '2020-09-01'

メモ:

data_date は日付のようなデータ型であると想定しているため、フィルタリングにはリテラル日付 (日付 '2020-09-01') を使用しました。データベースによっては、リテラル日付の構文が異なる場合があります。

table1 は list1 よりも合理的です

1

完璧です!!!それはうまくいきます。私はそれをすべて逆さまに、後ろから前に見ていました。ご協力ありがとうございます。

– イアン

2020 年 9 月 3 日 12:23



------------------------

おそらく、テーブルがあり、JOIN が必要だと思われます。

select l1.*, l2.name
from List1 l1 join
     List2 l2
     on l1.token = l2.token
where CALL_ANI='0797111111' and
      data_date = '1-sep-20';

あなたの日付形式は非常に型破りです。この比較はおそらく次のいずれかになるはずです。

data_date = '2020-09-01'
data_date = date '2020-09-01'

つまり、標準の日付形式を使用します。

総合生活情報サイト - OKWAVES
総合生活情報サイト - OKWAVES
生活総合情報サイトokwaves(オールアバウト)。その道のプロ(専門家)が、日常生活をより豊かに快適にするノウハウから業界の最新動向、読み物コラムまで、多彩なコンテンツを発信。