从mysql表中获取数据

时间:2014-07-22 14:17:56

标签: mysql sql

我有一张格式如下的表:

prod_code   prod_pos      prod_nm     prod_price

1           1             product1     100

1           2             product2     200

1           3             product3     400

1           4             product4     500

现在我需要以下列方式获取记录

产品代码,product_nm和productprice,其中prod_pos =' 1'和product_pos和prod_prod_price,其中prod_nm =' product4'

它有点复杂也可能令人困惑,但请帮助我这些家伙。

提前致谢

4 个答案:

答案 0 :(得分:0)

在黑暗中进行狂刺:

SELECT * 
  FROM table1
 WHERE prod_pos = 1
    OR prod_nm = 'product4';

答案 1 :(得分:0)

这应该这样做

select prod_code
       , Prod_NM
       , Prod_Price 
FROM yourtable 
WHERE 
Prod_Pos = 1 
 AND 
   Prod_NM = 'Product4';

答案 2 :(得分:0)

修改

SELECT A.PRODUCT_CODE FIELD1, A.PRODUCT_NM FIELD2, A.prod_price FIELD3,
B.prod_pos FIELD4, B.prod_price FIELD5
FROM product_table A, product_table B
WHERE  A.prod_pos = 1 AND B.prod_nm = 'product4'

再次编辑

with product_table as
(
select 1  prod_code,         1    prod_pos,         'product1'  prod_nm,   100 prod_price from dual
union
select 1  prod_code,         2    prod_pos,         'product2'  prod_nm,   200 prod_price from dual
union
select 1  prod_code,         3    prod_pos,         'product3'  prod_nm,   300 prod_price from dual
union
select 1  prod_code,         4    prod_pos,         'product4'  prod_nm,   500 prod_price from dual

)
SELECT A.prod_code FIELD1, A.prod_nm FIELD2, A.prod_price FIELD3,
B.prod_pos FIELD4, B.prod_price FIELD5
FROM product_table A, product_table B
WHERE  A.prod_pos = 1 AND B.prod_nm = 'product4'

为有问题的输入提供以下输出:

FIELD1                 FIELD2   FIELD3                 FIELD4                 FIELD5                 
---------------------- -------- ---------------------- ---------------------- -------------
1                      product1 100                    4                      500                    

原始答案:

检查您是否需要这样的东西:

SELECT 'TYPE1' TYPE, product_code FIELD_1 , product_nm FIELD_2
WHERE prod_pos = 1

UNION 
SELECT 'TYPE2' TYPE, prod_pos FIELD_1 , prod_price FIELD_2
WHERE prod_nm = 'product4';

这将返回类似

的输出
TYPE   |  FIELD_1   | FIELD_2
TYPE1  |  1         | product1
TYPE2  |  4         | 500

您可以使用按类型

区分的FIELD_1和FIELD_2访问相同的结果集

答案 3 :(得分:0)

SELECT * 
FROM product_table
WHERE 
   prod_pos = 1 
AND 
   prod_NM = 'Product4';

或者如果你想减少这一列:

SELECT 
  prod_code as p_code_or_p_pos
  , prod_price
  , prod_nm
FROM product_table
WHERE 
   Prod_Pos = 1 
union ALL
SELECT 
  product_pos as p_code_or_p_pos
  , prod_price
  , ''
FROM product_table
WHERE 
   Prod_Pos = 1