2015-01-11 5 views
0

Я использую Соединитель MySQL C 6.0.2, мне нужно выбрать Table1 и прочитать некоторые значения там, затем переключиться на таблицу2 и прочитать значения там тоже и т. Д., У меня есть более двух таблиц, которые мне нужны для переключения из таблицы в таблицу. Как я могу это сделать ?Выбор нескольких таблиц MySQL

пример кода:

connect=mysql_real_connect(connect,SERVER,USER,PASSWORD,DATABASE,0,NULL,0); 
if(connect) 
{ 
    MYSQL_RES *res_set; 
    MYSQL_ROW row; 
    ////table1 
    mysql_query(connect,"SELECT * FROM `Table1` WHERE `Column2`='1234'"); 
    unsigned int i = 0; 

    res_set = mysql_store_result(connect); 

    unsigned int numrows = mysql_num_rows(res_set); 
    if(numrows==0) 
    { 
     return false; 
    }else 
    { 
     while ((row = mysql_fetch_row(res_set)) != NULL) 
     { 
      if(strcmp(row[2], "true")==NULL) 
      {/////////Here I need to read or get the values from Table2 
       ///Select table two 

      }else 
       return false; 
     } 
    } 
} 

Update: Я думаю, что я решил, это было довольно просто

connect=mysql_real_connect(connect,SERVER,USER,PASSWORD,DATABASE,0,NULL,0); 
if(connect) 
{ 
    MYSQL_RES *res_set; 
    MYSQL_ROW row; 
    ////table1 
    mysql_query(connect,"SELECT * FROM `Table1` WHERE `Column2`='1234'"); 


    res_set = mysql_store_result(connect); 

    unsigned int numrows = mysql_num_rows(res_set); 
    if(numrows==0) 
    { 
     return false; 
    }else 
    { 
     while ((row = mysql_fetch_row(res_set)) != NULL) 
     { 
      if(strcmp(row[2], "true")==NULL) 
      {/////////Here I need to read or get the values from Table2 
       ///Select table two 
       MYSQL_RES *res_set2; 

       ////table2 
       mysql_query(connect,"SELECT * FROM `Table2` WHERE `Column2`='1234'"); 


       res_set2 = mysql_store_result(connect); 

       unsigned int numrows2 = mysql_num_rows(res_set2); 
       if(numrows2==0) 
       { 
       //no result 
       }else 
       { 
       //do something 
       } 
      }else 
       return false; 
     } 
    } 
} 
+0

То, что вы описываете, не похоже на способ SQL. Возможно, вы захотите предоставить дополнительную информацию о запрошенных таблицах и ожидаемом результате. (Соответствующие столбцы и некоторые примеры данных ...). SQL, который мы могли бы предложить на этой основе, может быть намного более эффективным. – Abecee

+0

Я не знаком с MySql, в основном то, что я хочу сделать, это просто прочитать или получить значения из table1, table2..etc в одной функции. Я сделал другую функцию для получения значений из таблицы2. – user3533628

+0

Я настоятельно рекомендую проверить инструкцию SQL с помощью инструмента командной строки MySQL mysql.exe перед тем, как поместить его в свой код на C++. Это поможет определить объем вашей проблемы: синтаксис SQL или проблема на C++. –

ответ

0

Вы имеете res_set переменную, вы получили от вашего запроса; вы получите другую переменную из вашего второго запроса. Вы не переключаетесь между таблицами, вы просто получаете правильные значения из правильных результатов запроса.

Также обратите внимание, что это очень похоже на то, что вы должны делать это в своем SQL-запросе, а не внутри своего кода, но это полностью зависит от того, что вы хотите делать.

0

Я предлагаю вам играть со своей операцией SQL, чтобы возвращать наборы результатов из обеих таблиц.

Изучите инструкцию "SELECT JOIN".

Правило большого пальца состоит в том, чтобы данные выполняли большую часть работы с базой данных, включая поиск нескольких таблиц.

Смежные вопросы