草庐IT

Many2one

全部标签

php - 拉维尔 4 : How to get selected/specific columns in a many to many relationship?

我想获取与特定对话相关的所有用户。数据透视表有user_id和conversation_id列。user_id和conversation_id分别引用user和conversations表中的id列。所以我做到了:Conversations::find($conv_id)->users()这没问题,但它会返回相关用户的所有详细信息。根据上面的代码,如何只返回用户的某些列,例如id和name?附言此外,我知道我可以通过为数据透视表创建一个模式来做到这一点,但这似乎有点矫枉过正。为数据透视表创建模式是一种好习惯吗?我试过了Conversations::select('id','name')

MySQL 查询 : use LIMIT on one table column having an OUTER JOIN

我有一个主用户数据库表和一个要外连接的“元”表。基本上基本的查询是SELECT*FROMusers_tableLEFTOUTERJOINmeta_tableONusers_table.id=meta_table.user_idORDERBYusers_table.idASC但我必须限制users_tableID列的结果。如果我使用标准的LIMIT子句,查询也会计算元值。是否可以限制用户的表ID列并将元数据与连接相关联? 最佳答案 你可以尝试使用子查询。例如SELECT*FROMmeta_tableRIGHTOUTERJOIN(SEL

php - 如何在 Laravel 5.6 的 View 中检索 Has One 关系

我有一个用户有很多电子邮件的关系,一个电子邮件属于一个用户。我在我的消息模型中这样定义它:publicfunctionusers(){return$this->belongsTo('App\User','sender_id','id');}这是我的Controller:$sender_name=Message::with('users')->get();returnview('admin.message.read',compact('message','sender_name'));在我看来,我会做这样的事情:@foreach($sender_nameas$sender_names)@

php - 记录 : one record to be active and all other will be inactive 的更新状态

我在数据库表中有一个enum('Y','N')字段,其中有许多记录保持记录状态为事件(Y)或非事件(N)。一次只能激活一条记录。提供了一个界面来显示所有记录及其状态,如果它是事件的,那么它会显示单词Active如果它是非事件的,则提供一个提交按钮以使其与每条记录一起事件。现在我正在执行两个更新命令updatetable_namesetactive="Y"whereid=$idupdatetable_namesetactive="N"whereid!=$id我的问题是:-我真的需要执行两个更新命令还是他们的任何更新命令一次更新它们? 最佳答案

MySQL : how to group multiple row into one row

请帮帮我。我在mysql中的表是这样的:kd_mapel|Sem1|Sem2|Sem3EKO-001|79|NULL|NULLEKO-002|NULL|80|NULLFIS-001|77|NULL|NULLFIS-002|NULL|76|NULLFIS-201|NULL|NULL|81GEO-001|79|NULL|NULLINA-001|79|NULL|NULLINA-002|NULL|80|NULLINA-003|NULL|NULL|79ING-001|77|NULL|NULLING-002|NULL|79|NULLING-003|NULL|NULL|80预期结果是:kd_mape

mysql - 良好实践 : table with more then one index?

对不起大家,我确实有这个包含3列的迷你表,但我将按一列或另一列列出值。1)可以让其中两列带有索引吗?2)每个表是否应该只有一个索引?3)在极限情况下,如果我们有一个包含100列的表,并且我们有50个列有索引,这样可以吗?谢谢,内存 最佳答案 有很多索引很好,甚至一张表上有多个索引,只要您正在使用它们。对您的查询运行EXPLAIN并检查正在使用的索引。如果有任何查询未使用的索引,那么它们不会给您带来任何好处,只会减慢对表的修改。应删除这些未使用的索引。如果您还没有这样做,您可能还想考虑多列索引。

MySQL 查询 : all records of one table plus count of another table

我有2个表:用户和图片。Picture表具有用户的键。所以基本上每个用户可以有多张图片,每张图片属于一个用户。现在,我正在尝试进行以下查询:我想选择所有用户信息加上他拥有的图片总数(即使它是0)。我怎样才能做到这一点?可能这听起来很简单,但我一直在尝试,但似乎找不到正确的查询。我唯一可以选择的是此信息,但仅适用于至少拥有1张图片的用户,这意味着图片表至少有该键的一条记录......但我也想考虑没有任何图片的用户.任何想法?谢谢! 最佳答案 您可能想尝试以下方法:SELECTu.name,IFNULL(sub_p.total,0)nu

mysql - SQL优化: Four statements into one

我有一个包含一些列的表,其中一个包含我用来运行的时间戳目前有四个单选来计算一个SELECTcount()并返回信息像“超过1周的n行”,“超过2周的n行”,...如何将四个查询转化为一个有望实现的SQL-Statement跑得更快?语句如下所示:SELECTcount(foo_pk)ASoneweekFROMfooWHEREfoo_timstamp 最佳答案 我不是MySql的人,但在SQLServer中我会像这样使用CASE语句:SELECTSUM(CASEWHENfoo_timstamp似乎这个语句在MySql中也可用,所以虽然

mysql - 计算每日平均值(或 : how many Mondays are in a date range? )

我的MySQL表有以下列:datetime、price_paid。我正在尝试计算2个日期之间一周中每天的平均销售额。这意味着我需要选择日期开始日期和结束日期之间的销售额总和,按工作日分组,然后除以每个工作日在该范围内出现的次数。我得到了第一部分:SELECTDATE_FORMAT(datetime,'%a')ASfield1,round(SUM(price_paid)/THEVALUEIMLOOKINGFOR)ASfield2FROMBillsWHEREdate(datetime)BETWEEN'2012-01-02'AND'2012-01-09'GROUPBYweekday(date

mysql - SQL : get all users in many specific group

我有一个看似简单但找不到解决方案的SQL问题...我有3个表:1)“用户”(身份证、姓氏、名字)2)"user_x_group"(id_user,id_group)3)“群组”(id,name)一个“用户”可以有多个“组”。同时获取组1和组2中的所有用户的查询是什么?SELECT*FROMuseruJOINuser_x_groupxONx.id_user=u.idWHEREid_groupIN('1','2')不正确,因为我得到了组1中的所有用户+组2中的所有用户+组1和2中的所有用户。我只需要一个查询中组1和组2中的所有用户。怎么做? 最佳答案