我有 3 张 table :
Persons (PersonID, Name, SS) Fears (FearID, Fear) Person_Fear (ID, PersonID, FearID)
Now I'd like to list every person with whatever fear is linked to them (can be multiple fears but can also be none). The persons table has to be shown even if a person doesn't have a fear linked to them.
I think I need to do a LEFT JOIN, but my code doesn't seem to work:
SELECT persons.name,
persons.ss,
fears.fear
FROM persons
LEFT JOIN fears
ON person_fear.personid = person_fear.fearid
我在这里做错了什么?
最佳答案
您正在尝试将 Person_Fear.PersonID 加入到 Person_Fear.FearID - 这真的没有意义。你可能想要这样的东西:
SELECT Persons.Name, Persons.SS, Fears.Fear FROM Persons
LEFT JOIN Person_Fear
INNER JOIN Fears
ON Person_Fear.FearID = Fears.FearID
ON Person_Fear.PersonID = Persons.PersonID
这通过中间表 Person_Fear 将 Persons 连接到 Fears。因为Persons和Person_Fear的join是LEFT JOIN,所以你会得到所有Persons记录。
或者:
SELECT Persons.Name, Persons.SS, Fears.Fear FROM Persons
LEFT JOIN Person_Fear ON Person_Fear.PersonID = Persons.PersonID
LEFT JOIN Fears ON Person_Fear.FearID = Fears.FearID
关于MySQL LEFT JOIN 3 个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16222097/
我有一个表students,字段为ward_id,我必须创建一个名为guardian_users的表,字段为id,ward_id,email,guardian_id,hashed_password等现在我必须添加约束外键。学生中的任何更新/删除/编辑/插入应该对guardian_users具有相同的效果。我如何在Rails2.3.5中做到这一点?students表存在,但其他表还不存在。 最佳答案 您要么需要foreign_key_migrations插件或#execute方法。假设您使用插件:classCreateGuardi
我是Bookshelf.js和knex的新手。我需要在Bookshelf/knex中编写一个与此等效的查询SELECTInv.*,Comp.*FROMInv,CompWHEREInv.uId=2ANDComp.cId=Inv.cId;Inv表有:Id|primarykey,integernotnullcol1|stringdatacId|integer,foreignkeyreferencesCtableuId|integerforeignkeyreferenceUtable比较表有:cId|primarykey,integernotnullcol3|stringdata
我的JSP上有一个生成的表,其中包含交易数据:每个单独的交易都是一行,并且有一列用于类别、金额、类型和描述。CategoryAmountTypeDescription结果是类别____金额____类型____描述我的表是使用Struts填充的:我在另一个JSP上选择一个部门,然后按“显示”转到生成该表的页面。因此,该表不一定具有固定的行数。我想做的是将每笔交易的金额列相加,以便显示总数。我尝试使用Javascript执行此操作,但它对我不起作用:varcls=document.getElementById("res").getElementsByTagName("td");varsum
我有一个简单的LINQlambda连接查询,但我想添加一个带有where子句的第三个连接。我该怎么做?这是我的单一连接查询:varmyList=Companies.Join(Sectors,comp=>comp.Sector_code,sect=>sect.Sector_code,(comp,sect)=>new{Company=comp,Sector=sect}).Select(c=>new{c.Company.Equity_cusip,c.Company.Company_name,c.Company.Primary_exchange,c.Company.Sector_code,c.
是否可以使用PDO从2个表加载数据并将第二个表数据设置为第一个表的子数组?例如:表格:article(id,title,description)links(id,article_id,link)加载数据~:stdClassObject([article.id]=>1[article.title]=>blabla[article.description]=>exampledescription[article.links]=>array([0]=>array(links.id=>1links.article_id=>1links.link=>.......)[1]=>array(link
所以我想加入3个表。我正在用Codeigniter构建一个应用程序,我有3个表客户:-id-电话号码-医院编号-smc_status-testing_center_id医院-id-姓名测试中心-id-姓名在模型中,我有这个:publicfunctionget_clients(){if($slug===FALSE){$this->db->select('clients.*');$this->db->from('clients');$this->db->join('hospital','clients.id=hospital.id');$this->db->join('testing_ce
我想从一个.csv文件中导出没有连接的3个表中的数据。我正在尝试连接,但没有得到我想要的结果。下面是我的表结构PlaylistSongsRating代码$mysql_host=DB_HOST;$mysql_user=DB_USER;$mysql_pass=DB_PASSWORD;$mysql_db=DB_NAME;$pre=$wpdb->prefix;$link=mysql_connect($mysql_host,$mysql_user,$mysql_pass)ordie('Couldnotconnect:'.mysql_error());mysql_select_db($mysql_
我一直在尝试多对多两个类Person和Address之间的关系。我不知道,但在某个地方我没有按照正确的思路思考。例如对于多对多映射,我制作了两个表CREATETABLEperson(p_idINTEGER,p_nameTEXT,PRIMARYKEY(p_id));CREATETABLEaddress(a_idINTEGER,addressTEXT);然后我在映射xml中尝试了一些东西。在一些不成功的尝试之后,我读到你需要三个表来进行多对多映射,就像answer一样。对我的一个问题说。请解释一下这是什么原因?为什么我需要第三张table?为什么我不能仅与两个表建立关联?
我必须对表格假设表格一是X,表格二是Z。表Z有一个分区谓词。表X是一个国家/地区表,具有以下字段country_id,country_name表Z包含一些数据,我想将该表的country_id映射到表X。我试过了selectc.country_id,c.country_name,s.sales_id,s.sales_ctry_idfromx_tablecjoinz_tableson(c.country_id=s.sales_ctry_id)但是因为表Z是按日期字段分区的,所以我无法让这个连接工作。有什么建议吗? 最佳答案 您应该使用
如何在使用Rails时对2个表执行连接操作?提供一个简单的解决方案来执行对连接2个表的搜索。 最佳答案 您将数据副本存储在多个表/集合中。这样一来,您就不需要将相关数据拼接在一起所需的JOIN和查找。您避免了联接并且存储了更多数据。在mongoid中有两个很棒的gem可以使这更容易:Mongoid_alize&Mongoid_denomalizehttp://blog.joshdzielak.com/blog/2012/05/03/releasing-mongoid-alize-comprehensive-field-denorma