【问题标题】:Query Multiple Tables SQL [closed]查询多个表 SQL [关闭]
【发布时间】:2014-07-16 23:05:24
【问题描述】:
CUSTOMER TABLE
id | customerID | name | lastname
1  | 0001       | John | Doe

ANSWERS TABLE
id | customerID | status | date
1  | 0001       | 0      | 2014-05-26

ANSWERMETAS TABLE
id | answerID   | questionCode
1  | 1          | 50000
2  | 1          | 60000

如何查询所有客户表及其答案?

【问题讨论】:

  • a.) 不要大喊 2.) 你有没有尝试过?
  • 如果你尝试过@solomonculaste 那么问题出在哪里?你得到了一个你没有预料到的结果集吗?

标签: php sql laravel


【解决方案1】:
SELECT
    * 
FROM
    customers
JOIN
    answers ON customers.customerID = answers.customerID
JOIN
    answermetas ON answers.id = answermetas.answerID

如果你想添加任何WHERE 子句,你需要列出table.column_name 而不仅仅是column_name,因为我们已经连接了多个表,现在列名可能不明确(即id 不明确所以请致电customers.idanswers.idanswermetas.id)。结果将所有字段名称为table.column_name

【讨论】:

    【解决方案2】:

    你可以试试这个:

    $customers = DB::table('customer')
              ->join('answers', 'customer.customerID', '=', 'answers.customerID')
              ->join('answermetas', 'answers.id', '=', 'answermetas.answerID')
              ->get();
    

    如果这些表有Eloquent 模型,那么您可以使用Eloquent 关系和Eloquent 方法,但这也可以。还要确保您的表名customer 是正确的(可能是客户)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-07
      • 2019-05-31
      • 2014-03-17
      • 2014-08-09
      相关资源
      最近更新 更多