只想问一些与加入表有关的问题
我想知道是否可以将2个表连接在一起,即使它们彼此之间没有关系。这可能吗?如果是的话,你能举例说明它是如何完成的。如果不是,是否有任何其他方式来连接或关联2个表,即使它没有任何外键(例如:user_id)
我看到sql他们使用像交叉连接这样的东西,但是你也可以在laravel中做到吗?
示例表例如:(假设我想使验证表name_of_user等于用户信息表的名称)
类似于verify.name_of_user = user_information.name
验证用户信息表:
Schema::create(verifications, function (Blueprint $table) {
$table->increments('id');
$table->string('name_of_user');
$table->timestamps();
});
用户信息表:
Schema::create(user_info, function (Blueprint $table) {
$table->increments('id');
$table->string('name);
$table->timestamps();
});
答案 0 :(得分:2)
这些表间接相关吗?即,当您创建数据库的图表时,表是通过一个或多个其他表连接的吗?如果是,那么您可以使用多个连接语句将它们连接在一起。
如果没有,在某些情况下您可以将它们加入相同的值,即使它们不是外键。
编辑:是的,您可以在name属性上加入这两个表,但您必须使用sql查询而不是雄辩。
SELECT v.*, u.*
FROM verifications AS v
JOIN user_info AS u
ON u.name = v.name_of_user
警告强>:
即使可能,我也不推荐它,因为可能有多个具有相同名称/ name_of_user的条目。
而是创建一个用户表,并将verifications.name_of_user替换为带有user_info.user_id的verifications.user_id和user_info.name。
然后,您可以加入user_id并始终获得正确连接的结果。
Schema::create(users, function (Blueprint $table) {
$table->increments('id');
$table->string('name');
});
Schema::create(verifications, function (Blueprint $table) {
$table->increments('id');
$table->integer('user_id');
$table->timestamps();
});
Schema::create(user_info, function (Blueprint $table) {
$table->increments('id');
$table->integer('user_id');
$table->timestamps();
});
SELECT v.*, u.*
FROM verifications AS v
JOIN user_info AS u
ON u.user_id = v.user_id
我暂时没有使用laravel / eloquent,但我认为如果你设置正确,你现在甚至可以使用普通的雄辩方法来加入这些,因为user_id现在(如果设置正确)是一个外键和因此表格是相关的;)
答案 1 :(得分:0)
检查以下查询,
public class MemberFragment extends Fragment {
private ListView studentListView;
public static MemberFragment newInstance() {
MemberFragment fragment = new MemberFragment();
return fragment;
}
TextView textViewNamaHolder;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_member, container, false);
studentListView = (ListView) v.findViewById(R.id.yourListView);
getActivity().setTitle("Daftar Member");
setHasOptionsMenu(true);
//PegawaiActivity a = new PegawaiActivity();
PegawaiActivity.GetHttpResponse mm = a.new
GetHttpResponse(getActivity());
mm.setListView(studentListView );
mm.execute();
//Adding ListView Item click Listener.
return v;
}
}