2017-12-14 1 views
0

MySQL 쿼리를 만들지 못했다. 비슷한 열이있는 6 개의 테이블이 있습니다. 물어보기 전에 별도로 업데이트하고 삭제해야합니다. 데이터 양과 함께 mysql은 고유 한 값을 선택한다 (그리고 값의 수를 세는 것)

그래서 여러 테이블에서 합계를 얻기 위해, 내가 DISTINCT (값)를 사용하여 하나 개의 고유 한 ID를 얻으려면 (X 등과 같은 SELECT COUNT (값)) FROM SELECT SUM (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

Nope not working – 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

관련 문제