2016-06-20 2 views
3

메신저 두 개의 테이블을 결합하려고 시도하지만, 프로그램을 실행할 때마다 이런 일이 발생합니다. enter image description herePHP가 Union을 실행하고 있습니다. 모든 SQL 문

여러분도 알다시피 SQL 문을 반복 해 보았습니다. 여기 내 코드가 있습니다.

$queryc1 = "select sum(repeater),sum(membersigned) from sales UNION ALL select count(*) from approach;"; //DO INNERJOIN PRACTISE 
$resultc1 = mysqli_query($dbconn,$queryc1); 
echo "<table> 
<tr> 
<th>Repeater</th> 
<th>Members</th> 
<th>Approach</th> 
</tr>"; 
while($row = mysqli_fetch_array($resultc1)) { 
    echo "<tr>"; 
    echo "<td>" . $row['sum(repeater)'] . "</td>"; 
    echo "<td>" . $row['sum(membersigned)'] . "</td>"; 
    echo "<td>" . $row['count(*)'] . "</td>"; 
    echo "</tr>"; 
} 
echo "</table>"; 
echo $queryc1; 

사진에서와 같이 개수 (*)를 제 곱한 테이블의 세 번째 열로 표시하고 싶습니다. 당신 조합 두 개 이상의 쿼리가 함께 각 쿼리 예를 들어 동일한 데이터 유형과 동일한 데이터 열을해야 할 때

+1

귀하의 질의에 결과가 없습니다! 그것이 경고를 표시하는 이유이며, phpmyadmin에서 쿼리를 실행하고 결과가 있는지 확인하십시오. –

+1

유니온 쿼리의 열 수가 같아야합니다. 귀하의 질의는 2 열 및 1 열을 결과로가집니다. –

+0

@ MohammadFareed 네, 그걸 시도했지만 합계 (리피터)와 합계 (멤버) 만 출력하지만 카운트가 아닙니다 (*) – Marcus

답변

2

당신은 필요가 없습니다

SELECT SUM(repeater),SUM(membersigned) FROM sales 
UNION 
SELECT Text1,Text2 FROM approach 

이 형식으로 쿼리를 교체 UNION 대신 당신이 하위 쿼리를 사용할 수 있습니다, 여기에 선택

select sum(repeater) as repeater_sum, 
     sum(membersigned) as membersigned_sum, 
     (select count(*) from approach) as approach_count 
from sales; 

하고 $row['repeater_sum']를 사용하여 PHP에서

등등

+0

감사합니다! 나는 항상 하위 쿼리를 사용하여 약 했었지만 이것을 사용하는 것을 생각하지 않았습니다. – Marcus

+0

오신 것을 환영합니다. 네, 연습 할 시간이 더 필요합니다. 곧 프로가 될거야, 확실해. –

2

:

+0

오, 이제 출력물을 받고 있습니다. 그러나, 난 거기에 생성 된 테이블에 3 열뿐만 아니라 2 열뿐만 아니라 싶습니다. 어떻게해야합니까? 유니온을 올바른 방법으로 사용하고 있습니까? 예전에 s.username = a.username과 같이 2 개의 테이블을 결합하여 이전에 시도했지만 작동하지 않았습니다. – Marcus

관련 문제