将两个表连接在一起,并返回匹配的所有数据(使用MySQL的PHP/Laravel5.2)
我有一个名为$category的变量,由用户选择。在提交时,我需要在一个表(profiles)中查找$category与之匹配的位置,并提取所有这些配置文件,然后查找likes表,并返回返回的配置文件的所有匹配记录 我的数据库看起来像: 表:概况将两个表连接在一起,并返回匹配的所有数据(使用MySQL的PHP/Laravel5.2),php,mysql,join,multidimensional-array,laravel-5.2,Php,Mysql,Join,Multidimensional Array,Laravel 5.2,我有一个名为$category的变量,由用户选择。在提交时,我需要在一个表(profiles)中查找$category与之匹配的位置,并提取所有这些配置文件,然后查找likes表,并返回返回的配置文件的所有匹配记录 我的数据库看起来像: 表:概况 ID | username | category ------------------------- 1 | x | band 2 | y | airline 3 | z |
ID | username | category
-------------------------
1 | x | band
2 | y | airline
3 | z | airline
表:喜欢
ID | account_id | likes | created_at
---------------------------------------
1 | 2 | 1000 | 21/03/2016
2 | 2 | 2000 | 22/03/2016
3 | 1 | 3000 | 22/03/2016
我的代码如下:
$category = "band";
$profiles = DB::table('profiles')
->join('likes', 'profiles.id', '=', 'likes.account_id')
->where('category', '=', $category)
->select('profiles.*', 'likes.likes', 'likes.created_at')
->get();
likes表中的account_id将与profiles表中的id相同。此外,每个配置文件可能有多个like记录。
这个查询似乎不起作用,它什么也不返回。我使用的是laravel 5.2。可能是因为相同的表和列名称
likes。likes
更改了表的名称,因此表和列不再相同。仍然返回相同的空数组[]。可能是由于相同的表和相同的列名likes。likes
更改了表的名称,因此表和列不再相同。仍然返回相同的空数组[]。尝试此操作后,很遗憾,仍然返回。空数组[]。尝试此操作后,很遗憾,仍无法返回。空数组[]。
$profiles = DB::table('profiles')
->leftJoin('likes', 'profiles.id', '=', 'likes.account_id')
->where('profiles.category', '=', $category)
->select('profiles.*', 'likes.likes', 'likes.created_at')
->get();