2015-10-25 83 views
1

我想要實現的是使用另一個select中的select從數據庫中獲取數據。我成功導入sender = $id,但是我想返回記錄其中兩個:使用2個變量從數據庫中選擇

  • sender = $id && receiver = any user

  • receiver = $id && sender = any user

這是我的代碼:

$comments = \DB::select('select * from 
          (select * from comments c 
           where `sender` = ?  //(here) 
           order by created_at desc) am 
          group by conversation_id 
          order by created_at desc 
          LIMIT 10', 
          [\Auth::user()->id]); 

使用這些會導致錯誤:

where ? = (sender, receiver) 

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'sender, receiver)

where ? = (`sender`, `receiver`) 

SQLSTATE[21000]: Cardinality violation: 1241 Operand should contain 1 
column(s) (SQL: select * from (select * from comments m 
where Test = (`from`, `to`) 

回答

1

當發送者或接收者=用戶ID

where ? in (sender,receiver) 
+1

無需改變'在'到'=' – JRD