2017-03-21 17 views
1

は私のクエリです: -リミット・オーダー・レコードの等価レコードの取得方法は?私はここではSQLクエリ 内の1つの問題に直面して使用しています

$query = 'SELECT 
      products.id, products.ProductName, products.smallimage as proSmallImage 
      FROM 
      products 
      LEFT JOIN 
      productscolors 
      ON 
      productscolors.proid =products.id 
      WHERE 
      products.id!="'.$productId.'" 
      AND 
      products.Enable="YES" 
      AND 
      products.undercatid in("22","16") 
      GROUP BY 
      productscolors.proid 
      ORDER BY 
      rand() limit 0,6'; 

このクエリは、私のために罰金を実行しかし、私が直面した一つの問題はありますが、クエリ

でこれを見

ということです
products.undercatid in("22","16") group by productscolors.proid order by rand() limit 0,6 

私の現在のクエリがRAを与え、これは22と16 でどこundercatidランダムなデータを返しますが、私は16のidから22 IDから3枚のレコードと3つのレコードをしたいです2つのクエリからのndomデータ。(時にはアンダーキャット22から5を、アンダーキャッド16から1を返します) 誰でもこの問題の解決方法を教えてください。 私はあなたが単一の労働組合を使用することができますundercatid

+1

アイデアが使用UNION、products.undercatid = 22と0,3 UNION製品を制限している。選択したいですアンダーキャット= 16と制限0,3 –

+0

大丈夫あなたは完全に更新されたクエリを書くことができます – kunal

答えて

1

両方の3から3のレコードが

select * from ( 
    SELECT products.id, products.ProductName, products.smallimage as 
    proSmallImage FROM products LEFT JOIN productscolors ON 
    productscolors.proid =products.id where products.id!="'.$productId.'" and 
    products.Enable="YES" and products.undercatid = "22" 
    group by productscolors.proid order by rand() 
    limit 0,3 
) t1 
union all 
select * from (
    SELECT products.id, products.ProductName, products.smallimage as 
    proSmallImage FROM products LEFT JOIN productscolors ON 
    productscolors.proid =products.id where products.id!="'.$productId.'" and 
    products.Enable="YES" and products.undercatid = "16" 
    group by productscolors.proid order by rand() 
    limit 0,3 
) t2 
+0

は動作しません:(@scaisEdge – kunal

+0

@kunal何が起こっていないことを意味する...あなたはエラーがありますか?結果は?..より良く説明してください – scaisEdge

+0

あなたは文法の間違いをしている仕事をしてくれてありがとう:) – kunal

0
SELECT products.id, products.ProductName, products.smallimage as proSmallImage FROM products where products.undercatid in("22") limit 0,3 
    UNION ALL 
    SELECT products.id, products.ProductName, products.smallimage as proSmallImage FROM products where products.undercatid in("16") limit 0,3 
    LEFT JOIN productscolors ON productscolors.proid =products.id 
    where products.id!="'.$productId.'" and products.Enable="YES" 
    group by productscolors.proid 
    order by rand() 
関連する問題