特定のフィールドがリストに表示されるかどうかに基づいて、いくつかのレコードを「フィルタリング」するためのコードがたくさんあります。
現在SELCT * FROM table1 ... AND value IN (8, 6, 4, 2, 9, 1, 3, 5, 7) ...
table1構造の場合:
CREATE TABLE IF NOT EXISTS `table1` (
`uniqueid` varchar(32) NOT NULL,
`value` int(11) DEFAULT NULL,
...
PRIMARY KEY (`uniqueid`)
)
ここvalue
で、別のテーブルに格納する必要があります。テーブルには複数の「値」が含まれている可能性があります。
新しいtable1構造:
CREATE TABLE IF NOT EXISTS `table1` (
`uniqueid` varchar(32) NOT NULL,
...
PRIMARY KEY (`uniqueid`)
)
新しいtable2構造
CREATE TABLE IF NOT EXISTS `table2` (
`id` int(11) NOT NULL,
`uniqueid` varchar(32) NOT NULL,
`value` int(11) DEFAULT NULL,
...
PRIMARY KEY (`id`)
)
あなたはアイデアを得る!
uniqueid
私の質問は、table2のレコードが最初の例のリストにあるかどうかを確認する方法です。
ある種のCOUNT
サブクエリを使用することを検討しましたが、よくわかりません。私は試した:
SELECT * FROM table1, table2
WHERE table1.uniqueid = table2.uniqueid
AND (SELECT COUNT(id) FROM table1, table2
WHERE table2.uniqueid = table1.uniqueid ) > 0
AND table2.value IN (8, 6, ...
しかし、それはうまくいきませんでした、そして私はアプローチが本当に好きではありません、非常に厄介に感じます。
助けていただければ幸いです。