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'
つまり、標準の日付形式を使用します。