私はMysqlを使用していますが、単純な問題であることを願っています。1 つの条件が true または別の条件が true の場合、テーブルからデータを選択する必要があります。
私が試した1つの選択はデータを返しますが、必要以上に多くのデータを返します。実際、テーブルには 66 レコードしか含まれていませんが、私のクエリは 177 レコードを返しています。私は何かを誤解しています。
['city' が値に等しく、'type' がゴールデン] または 'type' が 'charms' というカテゴリ内にある場合、データを選択する必要があります
私はこのクエリを試しました
SELECT b.*
FROM bubbles b, bubble_types bt
WHERE
b.city = 10
AND b.type = 'golden'
OR bt.category = 'charm'
AND bt.type = b.type;
そしてこれ(これはまったく機能しませんが、マークに近いかもしれませんか?)
SELECT b.*
IF(b.city = 10, b.type = 'golden'),
IF(bt.category = 'charm', bt.type = b.type)
FROM bubbles b, bubble_types bt;
うまくいけば、私が欲しいものは理にかなっていますか?
都市 10 の 66 個の「ゴールデン」バブル、またはタイプ フィールドでカテゴリ「チャーム」に分類されるバブルから約 10 行を取得する必要があります。
ありがとう;
bubble_types のサンプル テーブル データを編集します。
+----+----------+------------+
| id | category | type |
+----+----------+------------+
| 1 | bubble | golden |
| 2 | charm | teleport |
| 3 | charm | blow |
| 4 | badge | reuser |
| 5 | badge | winner |
| 6 | badge | loothunter |
| 7 | charm | freeze |
| 8 | badge | reuser |
| 9 | badge | winner |
| 10 | badge | loothunter |
+----+----------+------------+
mysql> describe bubbles;
+-------------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------------------+------+-----+---------+----------------+
| id | bigint(20) unsigned | NO | PRI | NULL | auto_increment |
| city | bigint(20) | YES | | NULL | |
| type | varchar(32) | YES | | NULL | |
| taken_by | bigint(20) | YES | | NULL | |
| taken_time | bigint(20) | YES | | NULL | |
| label | varchar(256) | YES | | NULL | |
| description | varchar(16384) | YES | | NULL | |
| created | datetime | YES | | NULL | |
+-------------+---------------------+------+-----+---------+----------------+