私はMYSQL初心者だと私は、クエリに問題があります。MYSQL(一定の条件の下でSELECT)
私は2つのテーブル(通話、はをcallsfailed)持っています。
- には、これらの列(called_number、duration)があります。
+---------------+----------------+ | called_number | release_reason | +---------------+----------------+ | 1010101 | -1 | | 1010101 | -1 | | 2020202 | -1 | | 3030303 | 406 | | 4040404 | 503 | | 5050505 | -1 | | 5050505 | -1 | | 6060606 | -1 | +---------------+----------------+
I:
+---------------+----------+ | called_number | duration | +---------------+----------+ | 1010101 | 13 | | 1010101 | 18 | | 1010101 | 20 | | 2020202 | 50 | | 2020202 | 20 | | 3030303 | 10 | | 4040404 | 30 | +---------------+----------+
そしては表があるcallsfailed:
- は(called_number、release_reason)
が通話表があると言うことを許可しますは、これらの列を持っているcallsfailed欲しいですcalled_number> 1を選択し、持続時間が25未満になると、またはrelease_reason = -1になります。 1回以上。
しかし caller_numberはより25以上継続した場合は、それはrelease_reasonを持っている場合でも、それを選択していないが= -1。
だから、結果は次のようになります。
+---------------+-------+
| called_number | count |
+---------------+-------+
| 1010101 | 3 |
| 5050505 | 2 |
+---------------+-------+
MYコードです:
( SELECT called_number, duration, COUNT(*) count
FROM calls
GROUP BY called_number
Having COUNT(called_number) > 1 and duration < 25
)
UNION
(SELECT called_number, release_reason, COUNT(*) count
FROM callsfailed
GROUP BY called_number
Having COUNT(called_number) > 1 and release_reason = -1
)
を持つことができますのエントリ間のいずれかの関係があります1つのテーブル、別のテーブルに?たとえば、ある数字が 'release_reason'として' -1'と何か他のもの( '406')を持っている場合、結果はどうなるでしょうか? – Terry
これは '-1'に焦点を合わせ、' 406'や他の理由を無視するだけです –