0

同じ DB に 2 つのテーブル イメージとインタラクションがあります。たとえば 1001_A01_1-4_5mM_3AT_Xgal_7d_W.cropped.resized.grey.png のような png ファイル名を持つ image.images が 1001_A01 のように見える plate_name.Interactions のようであるかどうかを判断し、画像が表示される回数を数えます。plate_name.Interactions を返したい画像が 3 つ未満の場合は、3 つの画像を取得する必要があります。1つのクエリを使用してこれを行いたいと思います。

これまでのところ、発生回数を数えようとしましたが、これは失敗しています:

select plate_name.Interactions, count(*) as count from Interactions where plate_name.Interactions like image.images;

問題のテーブルは次のとおりです。

mysql> desc images;
+------------+--------------+------+-----+---------+-------+
| Field      | Type         | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+-------+
| image      | varchar(100) | NO   | MUL | NULL    |       |
| user_id    | varchar(50)  | YES  |     | NULL    |       |
| project_id | varchar(50)  | YES  |     | NULL    |       |
+------------+--------------+------+-----+---------+-------+

mysql> desc Interactions;
+----------------------+-------------+------+-----+---------+-------+
| Field                | Type        | Null | Key | Default | Extra |
+----------------------+-------------+------+-----+---------+-------+
| plate_name           | varchar(25) | NO   | MUL | NULL    |       |
| plate_number         | int(11)     | NO   | MUL | NULL    |       |
| bait_sequence_name   | varchar(25) | NO   |     | NULL    |       |
| bait_gene_promoter   | varchar(25) | NO   | MUL | NULL    |       |
| array_coord          | varchar(25) | NO   |     | NULL    |       |
| transcriptor_factor  | varchar(25) | NO   |     | NULL    |       |
| orf_name             | varchar(25) | NO   |     | NULL    |       |
| y_coord              | varchar(25) | NO   | MUL | NULL    |       |
| x_coord              | varchar(25) | NO   | MUL | NULL    |       |
| orig_intensity_value | varchar(25) | NO   |     | NULL    |       |
| rc_intensity_value   | varchar(25) | NO   |     | NULL    |       |
| ptp_intensity_value  | varchar(25) | NO   |     | NULL    |       |
| z_score              | varchar(25) | NO   | MUL | NULL    |       |
| z_prime              | varchar(20) | YES  |     | NULL    |       |
| call_type            | varchar(25) | NO   |     | NULL    |       |
| bleed_over           | varchar(25) | NO   | MUL | NULL    |       |
| plate_median         | int(11)     | YES  | MUL | NULL    |       |
| bait_gene            | varchar(25) | NO   |     | NULL    |       |
| bait_prey_orf        | varchar(25) | NO   |     | NULL    |       |
| human_call           | varchar(25) | NO   |     | NULL    |       |
| modified_call        | varchar(25) | NO   |     | NULL    |       |
| duplicate_call       | varchar(25) | YES  |     | NULL    |       |
| user_id              | varchar(25) | YES  | MUL | NULL    |       |
| project_id           | varchar(25) | YES  | MUL | NULL    |       |
+----------------------+-------------+------+-----+---------+-------+

ボビーの答えに応じて追加:

+----+-------------+--------------+-------+---------------+--------------+---------+---    ---+---------+-----------------------------------------------------------+
| id | select_type | table        | type  | possible_keys | key          | key_len | ref  | rows    | Extra                                                     |
+----+-------------+--------------+-------+---------------+--------------+---------+---    ---+---------+-----------------------------------------------------------+
|  1 | SIMPLE      | images       | index | NULL          | image        | 208     | NULL |   19581 | Using where; Using index; Using temporary; Using filesort |
|  1 | SIMPLE      | Interactions | range | plate_median  | plate_median | 5       |   NULL | 3714984 | Using where; Using join buffer                            |
+----+-------------+--------------+-------+---------------+--------------+---------+------+---------+-----------------------------------------------------------+
4

1 に答える 1