2012-08-05 36 views
0

我正在使用Mysql,而且我堅持我希望的是一個簡單的問題。 如果一個條件爲真或另一個條件爲真,我需要從表中選擇數據。使用表達式從mysql表中選擇

我試過的一個選擇會返回數據,但數據比它應該多得多。事實上,該表只包含66條記錄,但是我的查詢返回了177條記錄。我誤解了一些東西。

,我需要選擇數據,如果[「城市」等於值和「類型」是金]或「類型」是一個名爲類別中的「魅力」

我已經試過此查詢

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 |    | 
+-------------+---------------------+------+-----+---------+----------------+ 

回答

2

你是如此接近!就拿「WHERE」你先-ness與你的第二個的括號去(和子句添加一個適合您的JOIN):

SELECT b.* 
FROM bubbles b 
    JOIN bubble_types bt 
    ON b.type = bt.type 
WHERE 
    (b.city = 10 AND b.type = 'golden') 
    OR 
    (bt.category = 'charm' AND bt.type = b.type); 

魔鬼在和關聯的細節,或where子句。如有疑問,請使用括號使您的意圖明確。

+0

也返回了66行中的177行。 也許有一些更基本的東西我錯過了。 bubble_types包含; + ---- + ---------- + ------------ + | id |類別|鍵入| + ---- + ---------- + ------------ + | 1 |泡泡|黃金| | 2 |魅力|瞬移| | 3 |魅力|打擊| | 4 |徽章| reuser | | 5 |徽章|贏家| | 6 |徽章| loothunter | | 7 |魅力|凍結| | 8 |徽章| reuser | | 9 |徽章|贏家| | 10 |徽章| loothunter | + ---- + ---------- + ------------ + – mark 2012-08-05 20:28:07

+0

嗯,不出來太好.... – mark 2012-08-05 20:28:36

+0

我現在懷疑它是加入...你可以用表格定義來編輯你的問題嗎? – 2012-08-05 20:31:07