2017-12-14 12 views
0

私はMySQLクエリを形成していません。私は同様の列を持つ6つのテーブルを持っています。あなたが尋ねる前に、彼らは別々に更新して削除する必要があります。データの量と一緒に。mysqlは別の値を選択します(そして値の数を数えます)

だから、複数のテーブルからの合計を取得するために、私は私がDISTINCT使用1つの一意のID(値)を取得するにはSELECT SUM(x)はFROM(SELECT COUNT(値)Xなどのような)

を使用しています。今私は2列のクエリにそれらを組み合わせる必要があるので、私は一意の値とカウントがあります。

私のデータは、例えばフォーム1台(乗算6による)のために次のようになります。私は123で欲しい

till_no | fruit | vegetables 
    123  | apple | null 
    123  | apple | carrot 
    125  | apple | pear 
    124  | apple | null 

| 2、124 | 1、125 |あり1

SELECT DISTINCT(y), SUM(a) FROM (
     (SELECT till_no as y, (SELECT COUNT(till_no) FROM Shop1) as a FROM Shop1 c) 
     UNION (SELECT till_no as y, (SELECT COUNT(_till_no) FROM Shop2) 
      as a FROM Shop2 c) 
     ) multipleTables 

答えて

0

DISTINCTを使用する必要はありません。 GROUP BY句はあなたのためにそれを取るでしょう。以下のクエリを試すことができます。

SELECT CONCAT(y, COUNT(y)) 
FROM (SELECT till_no as y FROM Shop1 
     UNION 
     SELECT till_no as y FROM Shop2 
     UNION 
     SELECT till_no as y FROM Shop3 
     UNION 
     SELECT till_no as y FROM Shop4 
     UNION 
     SELECT till_no as y FROM Shop5 
     UNION 
     SELECT till_no as y FROM Shop6) multiple tables 
GROUP BY y 
+0

おかげAnkitを打つ、良いものを持っています、私はコードを試してみます – KDJ

+0

いいえ動作していない – KDJ

+0

エラーを共有してください。 –

0

Ankitを正しい経路に置きます。

ソリューションです:ソリューションを解決するための

 SELECT z, SUM(y) 
    FROM (SELECT ea as z, COUNT(ea) as y FROM table1 GROUP BY ea 
    UNION 
    SELECT ea as z, COUNT(ea) as y FROM table2 GROUP BY ea 
    UNION 
    SELECT ea as z, COUNT(ea) as y FROM table3 GROUP BY ea 
    UNION 
    SELECT ea as z, COUNT(ea) as y FROM table4 GROUP BY ea 
    UNION 
    SELECT ea as z, COUNT(ea) as y FROM table5 GROUP BY ea 
    UNION 
    SELECT ea as z, COUNT(ea) as y FROM table6 GROUP BY ea) 
    multipletables 
    GROUP BY y 

トリックは小さなステップにそれを破るためにある...論理的に1 + 1は、必ず47 + 126

関連する問題