2016-09-28 56 views
-3
SELECT Q.mem_id 
FROM tb_mem_share Q, 
     tb_member Mb 
WHERE Mb.mem_id = Q.mem_id 
     AND Q.share_num_from BETWEEN '42368' AND '42378' 

SELECT * 
FROM tb_mem_share 
WHERE share_num_from >= 42368 
     AND share_num_from <= 42378 

之間我只得到第二個記錄:選擇值從並運行此列

mem_id | share_num_from | share_num_to | no_of_shares | share_amt 
-----------+------------------+----------------+----------------+-------------- 
    KA003871 |  42360  |  42369  |  10   | 10000 
    KA000401 |  42370  |  42379  |  10   | 10000 

我在做什麼錯?

+1

你有兩個疑問,試圖做什麼?添加示例表格數據和預期結果(如格式化文本)。 – jarlh

+2

不要將數字與字符串進行比較。 ''42368'是一個字符值,**不是**數字。 '42368'是一個數字 –

回答

2

share_num_from在你的第一個記錄是42360,而不是「42368」之間和「42378」

1

不知道你正在嘗試做的,但如果你想根據您從&列值選擇您至少應該將它們包含在您的選擇中:

SELECT * 
FROM tb_mem_share 
WHERE share_num_from >= 42368 
    AND share_num_to <= 42378; 

當前您正在過濾兩次。