2 つのテーブルがあります。1 つは「電話番号」テーブルで、もう 1 つは「通話」テーブルです。呼び出しテーブルには、対象となる 2 つの列があります。発信番号列 (c.orig) と着信番号列 (c.term) です。
c.orig 番号または c.term 番号のいずれも番号テーブル (番号テーブルの「n.num」列) に存在するcallテーブルのすべてのレコードを返す MySQL クエリを作成しようとしています。
これが私のSQLクエリです:
SELECT
c.id, c.date, c.orig, c.term, c.duration
FROM calls as c
LEFT JOIN numbers as n ON (n.num = c.orig AND n.num = c.term)
WHERE
c.period = '2012-08' AND
n.num IS NULL
GROUP BY c.call_id
ORDER BY c.call_id
LIMIT 0,300
何か案は?
ここにいくつかのさらなる説明があります:
------------------------------
table: numbers
nid num
1 111-222-3333
2 222-333-4444
3 333-444-5555
------------------------------
------------------------------
table: calls
id orig term
1 333-444-5555 999-999-9999
2 999-999-9999 111-222-3333
3 222-333-4444 999-999-9999
4 888-888-8888 999-999-9999
5 777-777-7777 999-999-9999
------------------------------
コール ID 1、2、および 3 には、番号テーブルにある 2 つの番号 (orig または term) の少なくとも 1 つがあります。
コール ID 4 と 5 は、2 つの電話番号のどちらも番号テーブルにない状況です。それらは私が見つけようとしている記録です。番号テーブルにどちらの電話番号も見つからないレコード。