2014-02-03 5 views
-1

Я использую smart fox server.where, я подключаю этот сервер к базе данных My sql.Как я могу сохранить запрос Mysql в конкретной строке

Этот запрос корректно работает в командной строке My sql, но когда я пишу этот запрос на стороне сервера, вы получаете error.i знать ошибку в% emp_id% .Here emp_id постоянна. Я пытаюсь таким образом, но все еще получаю ошибку.

String sql=" 
SELECT emp_first_name 
    , emp_last_name 
    , msg_title 
    , msg_body 
    FROM message_master 
    JOIN emp_master 
    ON emp_master.emp_id = message_master.empmsgsender_id 
    AND message_master.emp_id IN(SELECT emp_id 
            FROM message_master 
           WHERE emp_id LIKE %'"+emp_id+"'%)"; 

    @Override 
public void handleClientRequest(User user, ISFSObject isfso) 
{ 
try 
{ 
    trace("within request for message"); 
    String emp_id=isfso.getUtfString("uid"); 
    trace("Employee_id:"+emp_id); 

// String sql="SELECT emp_first_name,emp_last_name,msg_title,msg_body from message_master inner join emp_master ON emp_master.emp_id=message_master.empmsgsender_id AND message_master.emp_id='"+emp_id+ "' LIMIT 10"; 
    String sql="SELECT emp_first_name,emp_last_name,msg_title,msg_body from message_master inner join emp_master ON emp_master.emp_id=message_master.empmsgsender_id AND message_master.emp_id IN(SELECT emp_id from message_master where emp_id LIKE %emp_id%)"; 
    trace("After sql query"); 
    sfsdb=getParentExtension().getParentZone().getDBManager(); 
    conn=sfsdb.getConnection(); 
    trace("connection established"); 
    ps=conn.prepareStatement(sql); 
    rs=ps.executeQuery(); 

    trace("After resultset"); 
+0

Если вы получите ответ, а затем отправить его для других знать. –

ответ

0

Я смущен. Как этот запрос отличается от этого ...

String sql=" 
SELECT emp_first_name 
    , emp_last_name 
    , msg_title 
    , msg_body 
    FROM message_master m 
    JOIN emp_master e 
    ON e.emp_id = m.empmsgsender_id 
WHERE m.empid LIKE '%emp_id%'; -- and why are you using `LIKE`??? 
"; 

(Это не ответ, но я хотел бы воспользоваться опциями форматирования)

+0

emp_id постоянна ... когда я использую этот синтаксис emp_id рассматривается как строка .... что неправильно –

+0

Так зачем вообще использовать LIKE? 'empid = constant_in_smartfoxserver_format' – Strawberry

+0

Строка sql =" SELECT emp_first_name, emp_last_name, msg_title, msg_body from message_master internal join emp_master ON emp_master.emp_id = message_master.empmsgsender_id AND message_master.emp_id IN (SELECT emp_id из message_master, где emp_id LIKE "+" \ "% "+ emp_id +"% \ ")"; actully я получил ответ .... спасибо друзьям –

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