考虑2表
我想显示所有列条目(不包括Table2.id)
我们正在使用的传统查询
SQL:
SELECT Table1.id, Table1.name, Table1.phoneNumber, Table1.state, Table1.city, Table1.country,
........, Table2.profession FROM Table1 join Table2 on Table2.personId=Table1.id
Laravel:
Table1::join('Table2', 'Table2.personId', 'Table1.id')
->Select('Table1.id', 'Table1.name', 'Table1.phoneNumber', 'Table1.state', 'Table1.city', 'Table1.country', ........, 'Table2.profession')
->get();
我们知道我们必须在查询中写入列名称。是否有任何查询可以最大程度地减少编写工作,这意味着我们只需要编写不想显示的列?
答案 0 :(得分:1)
您可以为此使用所有字符(*
)
SELECT Table1.*, Table2.profession FROM Table1 join Table2 on Table2.personId=Table1.id
或使用Laravel的查询生成器:
DB::table('Table1')
->select('Table1.*', 'Table2.profession')
->join('Table2', 'Table1.id', 'Table2.personId')
->get();
答案 1 :(得分:0)
我也得到了类似的答案(如果错误地出现任何语法错误,请忽略) 对于Laravel:
DB::table('Table1')
->join(DB:Raw('(SELECT personId,profession from Table2) as TempTable'), 'Table1.id', 'TempTable.personId')
->get();
对于SQL:
Select * from Table1 Join (SELECT personId,profession from Table2 ) as TempTable on TempTable.personId=Table1.id