2013-08-25 3 views
0

여러 테이블 (20 개 테이블)에서 모든 행을 선택하려하지만 실제로 작동하지 않습니다. 처음 두 개를 선택하도록 표시 할 수 있습니까? 큰 테이블의 경우 중복 열 이름이 있습니다. 설명서를 읽었으며 JOIN을 사용할 수 있다고 말합니다. 그러나 얻을 수는 없습니다.여러 테이블에서 선택

내가 시도하는 것 :

stmt = $mysqli->prepare("SELECT * FROM table1, table2 where firstname LIKE ? ORDER BY id desc"); 
stmt->bind_param('s', $fname); 
stmt->execute(); 

답변

0

조인과 같이 있습니다 :

SELECT `something` FROM `table1` t1 JOIN `table2` t2 ON joinitem.t1 = joinitem.t2 ... 
            ^--------table 1's id----------^ ^--column name 
+0

'선택 *'이 가능하지 않습니까? 나는 많은 행을 가지고있다. – amdvb

+0

@ amdvb 예 예를 들어 설명해 보겠습니다. – Class

0

당신이 당신의 WHERE

의 링크를 제공하는 다른 테이블과 관계가 각 테이블에서 데이터를 필요로하는 경우
"SELECT * FROM table1, table2 where table1.id = table2.id AND firstname LIKE ? ORDER BY id desc"); 

관계가없는 테이블의 데이터를 대량 선택하려면 하나 onship 다른 당신은 아마, 당신은 표 1과 표 2 열 id 모두가 동일한 유형 및 열 수가

SELECT * FROM table1 where firstname LIKE 'x' 
UNION ALL 
SELECT * FROM table2 where firstname LIKE 'x' 
+1

두 테이블 모두 같은 수의 열을 가져야합니다. – user4035

+0

'같은 유형과 열 개수가 일치해야합니다. '라는 단어를 읽지 않았는지 모르거나 ... – DevZer0

+0

테이블에 관계가 없습니다 열이 일치하지 않습니다 – amdvb

0

일치해야 할 필요를 선택한 UNION하지만 모든 열을 사용할 수 있습니다. ORDER BY 절에 명시 적으로 테이블 이름을 지정하십시오.

SELECT 
    * 
FROM 
    table1, table2 
WHERE 
    firstname LIKE ? 
ORDER BY 
    table1.id desc 

table2.id별로 정렬하는 경우 대신 사용하십시오. 첫 번째 이름이 두 테이블 모두에 있으면 WHERE 문에 테이블 이름을 지정하십시오.

관련 문제