これは2,3日後に私が迷惑をかけるように助けてくれることを願っています。私はテーブルから一意の行の総数を取得しようとしています。たとえば、表のデータは次のようになります。常にユーザのペアリングのための唯一の単一のエントリもあるMySQLから一意の行を選択
私は何を見つけたいことUSER_IDは(列user_1
または列
user_2
のいずれか)に表示された行の合計数です
user_1 | user_2 | date_added | date_removed
--------|--------|---------------------|---------------------
1 | 2 | 2016-09-20 15:51:45 | 2016-09-24 09:15:32
1 | 3 | 2016-09-21 10:16:03 | 2016-09-29 00:46:44
6 | 1 | 2016-09-23 05:48:59 | 0000-00-00 00:00:00
1 | 3 | 2016-09-30 09:57:16 | 0000-00-00 00:00:00
、(ユーザーのペアます同じ列にある)、date_removed
= 0000-00-00 00:00:00
。
したがって、上記の表をuser_id
'1'で検索すると、合計は '1'になります。 (3行目のみが検索基準と一致します)。 user_id
'2'の検索は '0'になります。 user_id
の '3'は '0'に等しくなります。 user_id
の '6'は '1'に等しくなります。
希望は意味があります。どんな助けや指針も高く評価されます。
---- EDIT ----
これは私がこれまでのところ、私は株式会社は、などに参加し、いくつかの方法を試してみたが、これは今のところ私に最も近いを得て、そのないきれいないクエリです私は確かに確かに!
より多くのデータがテーブルに表示され、クエリの結果は次のようになりますしかしSELECT COUNT(*) AS `count`
FROM `table`
WHERE (`user_1` = '1' OR `user_2` = '1')
GROUP BY `user_1`, `user_2`
HAVING `count` < '2' AND MAX(`date_removed`) < '0000-00-00 00:00:01'
、:私はそれを見せたい
count
-----
1
1
1
:
count
-----
3
あなたの説明から、あなたはuser_1だけを検索しているようです。しかし、user_1とuser_2の両方のuser_idを検索するように思えます。その場合、user_idが1の場合、カウントは2になります。したがって、user_idが6または1の場合、3行目と一致します.1のuser_idは、3行目と4行に一致します。詳細は? – TimBrownlaw
user_idは両方の列(user_1とuser_2)で検索されます。 3行目のみがユーザー1の検索要件と一致しますが、4行目にはdate_removedの場合 '0000-00-00 00:00:00'が、2行目にもユーザーのペアリング(1と3)が表示されます。 – user3053392
あなたはすでに試したSQLに質問しますか? @ user3053392が指摘したように、複数の行が見つかることを理解しています。また、user_id = 3の場合、私の理解から1(4行目)も返されます。私たちは何かを欠いていると思う。 – Tom