查询多个表SQL

时间:2014-05-27 21:46:51

标签: php sql laravel

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

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

你可以试试这个:

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

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