2015-01-06 6 views
1

PHP의 쿼리에서 다른 테이블의 외래 키로 하나의 주 테이블에 몇 개의 기본 키를 추가하려고합니다.MYSQL 외래 키로 다른 테이블의 기본 키를 삽입하십시오.

지금까지 내가 가지고 :

$result=$mysqli->query("INSERT INTO m_main (M_Id, M_T_Id, M_U_Id, M_P_Id, M_S_Id, M_Sp_Id, M_Ra_Id, M_F_Id, M_Hp, M_Rss, M_Kommentar)" 
           . "VALUES (DEFAULT, 123, 123, '".$_SESSION['sId']."' , 123, '".$_SESSION['Sp_Id']."', '".$_POST['fragestellung']."', 123," 
           . "'".$_POST['hp']."', $rss, '".$_POST['kommentar']."')"); 

모든 "123"내 데이터베이스에서 다른 테이블에서 기존의 차 키를 대체합니다. 어떻게 가능합니까?

+0

하위 쿼리가 적절할 수 있지만 기본 키가 포함 된 hte 테이블에 대한 정보도없고 삽입하는 레코드와의 관련 정보도 없습니다. – Jeeped

+0

@Jeeped 다른 모든 테이블에는 기본 키로 정수가 있고 문자열 만있는 하나 이상의 열이 있습니다. 데이터베이스에 액세스/쓰기가 가능한지 확인하기 위해 "123"을 썼습니다. – Alex311

답변

1

INSERT ... SELECT 구문을 사용할 수 있습니다.

다음과 같이 입력하십시오. anotherTable은 삽입하려는 다른 테이블입니다. 당신은 또한 SELECT 문에서 WHERE 절을 m_main에 삽입 된 행의 수를 제한 할 수 있습니다 필요한 경우

$result=$mysqli->query("INSERT INTO m_main (M_Id, M_T_Id, M_U_Id, M_P_Id, M_S_Id, M_Sp_Id, M_Ra_Id, M_F_Id, M_Hp, M_Rss, M_Kommentar) " 
        . "SELECT (DEFAULT, anotherTable.id, anotherTable.id, '".$_SESSION['sId']."' , anotherTable.id, '".$_SESSION['Sp_Id']."', '".$_POST['fragestellung']."', anotherTable.id," 
        . "'".$_POST['hp']."', $rss, '".$_POST['kommentar']."') FROM anotherTable"); 

.

1

오래 전 나는이 질문을했습니다. 마침내 나는 누군가에게 같은 문제가 생길 때를 대비하여 대답 할 시간을 얻었다. 왜 내가 그렇게 복잡하게 만들고 싶었는지 모르겠다. Subquerys 대답 :

$result=$mysqli->query("INSERT INTO m_main (M_Id, M_T_Id, M_U_Id, M_P_Id, M_S_Id, M_Sp_Id, M_Ra_Id, M_F_Id, M_Hp, M_Rss, M_Kommentar)" 
          . "VALUES (DEFAULT, (SELECT MAX id FROM title), (((AND SO ON...))) 
+0

감사합니다! 이 지위는 지난 3 시간 동안 어디에 숨어 있었습니까?! :) – Eutherpy

관련 문제