1

と呼ばれるテーブルを含むJoomla(3.9.13)データベースがありますfields_values。これは非正規化されたキー値ストアです(そう言われました)。次のデータが含まれています。

+----------+---------+--------+
| field_id | item_id | value  |
+----------+---------+--------+
| 6        | 119     | bloggs |
| 17       | 119     | 1      |
| 19       | 119     | 45     |
| 21       | 119     | 55     |
| 17       | 119     | 14     |
| 17       | 119     | 100    |
+----------+---------+--------+

このクエリを実行すると;

SELECT `field_id`
     , `item_id`
     , `value` 
  FROM `fields_values` 
 WHERE `field_id` IN (6,17) AND `item_id` = '119'

これらの結果が得られます。

+----------+---------+--------+
| field_id | item_id | value  |
+----------+---------+--------+
| 6        | 119     | bloggs |
| 17       | 119     | 1      |
| 17       | 119     | 2      |
| 17       | 119     | 13     |
| 17       | 119     | 14     |
| 17       | 119     | 100    |
+----------+---------+--------+

6それはすべて問題ないように見えますが、このクエリを実行すると ( from句を省略しますIN);

SELECT `field_id`
     , `item_id`
     , `value` 
  FROM `fields_values` 
 WHERE `field_id` IN (17) AND `item_id` = '119'

ゼロの結果が得られます。

次の結果が期待できます。

+----------+---------+--------+
| field_id | item_id | value  |
+----------+---------+--------+
| 17       | 119     | 1      |
| 17       | 119     | 2      |
| 17       | 119     | 13     |
| 17       | 119     | 14     |
| 17       | 119     | 100    |
+----------+---------+--------+

この単純なバージョンのクエリも試しました。

SELECT 
    `field_id`, 
    `item_id`, 
    `value` 
FROM 
    `o3m0z_fields_values` 
WHERE
    `field_id` = 17 
AND 
    `item_id` = '119'

ゼロの結果が得られます。

HeidiSQL から取得したテーブル情報を次に示します。

ここに画像の説明を入力

これをJoomlaの新規インストールで複製しようとしましたが、できません。なぜこうなった?

注: クエリはコア Joomla システムによって生成されるため、変更できません。

4

0 に答える 0