2

私は MySQL にかなり慣れていないので、これはおそらく経験豊富な人にとっては簡単な質問ですが、これを理解することはできません. ユーザーがコメントを投稿したデータベースからアイテムを取得する必要があり、他の誰かによる新しいコメントがあります。

私のテーブルにはこれらの列があります

app_id - id of the item

app_comment - comment blank if rate is present

app_rate - rating blank if comment is present

date - date of posting

device_id - unique id to identify each user.

ユーザー (device_id) が投稿した各コメントを取得する簡単なクエリを作成しました。

temp table:
SELECT `app_id` FROM `appaction` WHERE `device_id` = '00000000-5a24-5a06-0000-00005c907706' AND `app_comment` <> ''

しかし、次に何をすべきかを理解できません。今、私はどういうわけか、他の誰か(別のdevice_id)がこれらの各項目について新しい投稿をしているメインテーブルからそれらの app_id だけを取得する必要があります

更新: データの例: http://www.sqlfiddle.com/#!2/8d986/1

注: これは、テーブルがどのように見えるかを理解するための単なるサンプルです。実際には、内部に約 10,000 の値があります。

例: 私は php スクリプトに device_id を与えています。出力では、ユーザーが自分自身を投稿したすべての app_id が必要で、彼の後に新しいコメントがあります。

入力例: http://www.sqlfiddle.com/#!2/66258/1

望ましい出力は、入力 ffffffff-c565-9b4a-ffff-ffffc9d821fd 用です

img/Honda/AccordPICS/4167946157_a5b77093bc_b.jpg

他の誰かによるこの app_id の新しい投稿があるためです。

4

2 に答える 2

0

最新の投稿がデバイス ID 00000000-5a24-5a06-0000-00005c907706 以外からのものであるすべてのアプリを探していると思います。それが本当なら、以下のクエリを試してください

SELECT `app_id`, group_concat(device_id) as device_ids FROM `appaction` 
GROUP BY app_id ORDER BY date DESC 
HAVING SUBSTRING_INDEX(device_ids,",",1)!= '00000000-5a24-5a06-0000-00005c907706'
于 2013-08-29T08:44:58.940 に答える