2013-07-12 2 views
0

Я использовал запрос sql join в erlang, но ниже код был выполнен и didnot получить ответ, я думал, может быть, ошибка возникает в запросе list_to_binary преобразования Packet = list_to_binary([?MYSQL_QUERY_OP, Query]) эта строка исполнения.Как написать binary_to_list mysql join query в erlang?

ejabberd_odbc:sql_query(
      "192.168.1.14", 
      ["select p.id,p.name,p.age,p.phone,i.question from palani p join india i on i.palaniId = p.id;"]). 

Я знаю, что не буду отправлять данные подготовки. пожалуйста, дайте мне знать. Как отправить правильный формат?

ответ

1

Когда вы пишете [«строка»], вы строите список, содержащий один единственный элемент, строку «строка». Функция ожидает строку, поэтому вам нужно просто использовать «select p.id, p.name, p.age, p.phone, i.question from palani p join india i на i.palaniId = p.id;». удаление [].

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

Таким же образом, я не считаю, синтаксис «выберите ... из таблицы р присоединиться ...»

Наконец, если вы хотите сделать динамически создавать свои запросы, вы можете использовать io_lib: format/2 и оператор ++ для его создания

+0

dont use; и создать псевдоним, используя ключевое слово AS ejabberd_odbc: sql_query ( "192.168.1.14", ["выберите p.id как id, p.name как имя, p.age как возраст, p.phone как телефон, i.question как qu от palani, поскольку p присоединяется к india как i на i.palaniId = p.id "]). –