草庐IT

left-hand

全部标签

MYSQL LEFT JOIN 优化与 CASE

我花了一些时间尝试使用CASE来处理这个SELECT,但我失败了......(感谢我现在正在使用COLASCE())如何使用CASE/IF语句优化此SELECT?这是一种从字段选择的不同表中查询的快速方法吗?SELECTa.folderid,a.foldername,a.contenttype,COALESCE(b.descriptor,c.descriptor,d.descriptor,e.descriptor,f.descriptor)asdescriptorFROMt_foldersaLEFTJOINt_filesbONa.contenttype='file'ANDa.conte

MYSQL Left Join 条件或

好吧,我对SQL的效率不高,我尝试在左连接中使用OR语句,但发现它不起作用。我这样做的原因是因为我有两个表中的两列,如果其中一个返回NULL,我将尝试使用它们进行连接。我有两个表-事件和季节。每个表都有一个sponsorid列,我用它来加入sponsors表。这背后的原因是因为有时赞助的是单个赛事,而不是整个赛季,反之亦然。我的问题是最好的方法是什么。我的原始查询与此不同,但概念相同(除了它不会从每个表中获取每一列)。SELECTsp.*,re.*,ev.*,se.*FROMeventsevINNERJOINseasonsseONse.season_id=ev.event_sidINN

mysql - 用几个 LEFT JOIN 查询,没有得到想要的结果

这是一个sqlfiddle谁能告诉我如何使用LEFTJOIN获得此输出?notification_recipientpm_sendermsgmodification_page_idPeterTomHelloNULLnotification_recipientpm_sendermsgmodification_page_idPeterNULLNULL2这是我试过的查询:SELECTu.nameASnotification_recipient,us.nameASpm_sender,p.msg,um.page_idASmodification_page_idFROMnotificationnL

php - 使用 LEFT JOIN pdo php mysql 更新

我想同时更新多个表,所以我使用LEFTJOIN为我的更新创建一个查询。我尝试了2种方法来创建LEFTJOIN,但都失败了。我看不出我在哪里犯了错误,所以我希望有人能够正确地剖析查询并指出错误。我已经对查询应用了一些格式,这样我看起来比以前看起来更易读:首先是:"UPDATE"."table1ASt1SETt1.Bid=:id"."LEFTJOINtable2ASt2SETt2.id=:idONt1.Bid=t2.idANDt1.status=t2.status"."LEFTJOINtable3ASt3SETt3.Bid=:idONt1.Bid=t3.BidANDt1.status=t3

mysql - LEFT JOIN 之后的 INNER JOIN

我有两个非常有效的查询。后者对前者的每一行运行一次。如果可能的话,我想将它们结合起来以提高性能。后者返回零行或一行。问题是这两个查询都使用了INNERJOIN,我需要用LEFTJOIN将它们粘合起来。这是否合法,是否明确定义了如果在LEFTJOIN“之后”使用INNERJOIN会发生什么。最后,与“快速”的现有方法相比,这样的阴谋会带来任何性能损失吗?作为引用,如果这是TMI,我很抱歉,这是我的第一个查询:SELECTpmt_attempts.user_id,CONCAT(DATE_FORMAT(attempt_time_end,'%Y')+2,DATE_FORMAT(attempt_

mysql - COUNT() 结合 INNER/LEFT JOIN 不起作用

我遇到了一个mysql查询,对于我的水平来说似乎太复杂了。非常感谢任何解决此问题的帮助。我有3个表:_members:所有成员列表_friends:每个成员拥有的所有好友列表,使用2个字段:friends.id_member包含成员id,friends.id_friend包含相应好友的id。_comments:成员发表的所有评论列表(使用字段comments.id_member将此表加入到表members中)我愿意:_(1):显示一个成员可能拥有的所有好友(在这个例子中,成员编号为35;它运作良好)SELECTfriends.*,members.*FROMfriendsINNERJOI

sql - 同一张表上有 2 个 LEFT JOIN 的 MySQL

我正在尝试运行此查询:SELECTDestaque.destaque,Noticia.id,Noticia.antetitulo,Noticia.titulo,Noticia.lead,Noticia.legenda,Noticia.publicacao,Seccao.descricao,Album.pasta,Foto.ficheiro,Foto.descricao,Cronista.nome,Cronista.profissao,Cronista.ficheiro,AudioFile.*,AudioCollection.*,VideoFile.*,VideoCollection.*

将 LEFT JOIN 与 OR 结合使用时,MySQL 查询会忽略索引?

我有这个问题:SELECTf.uid,fi.statusFROMfriendsfLEFTJOINfriends_invitationsfiONf.fid=fi.fidWHERE(f.uid=2ORfi.uid=2)上面的查询是正确的,但是在性能方面它扫描了friends表中的所有行,并忽略了WHERE子句中的f.uid索引,尽管fid和uid是两个表中的索引。基本上,我想要使用“uid”字段检索存在于“好友”或“好友邀请”表中的用户的最佳方法。有什么想法/建议吗? 最佳答案 怎么样:SELECTf.uid,fi.statusFROM

php - MySQL LEFT JOIN 多表逻辑问题

我有3个表:歌手、歌曲、专辑。它们都与singer_id相关联即使没有匹配的singer_id,我也需要获取所有这些。我设法通过这个查询获得了所有这些:SELECTsingers.singer_name,albums.album_name,songs.song_nameFROMsingersLEFTJOINalbumsONsingers.singer_id=albums.singer_idLEFTJOINsongsONalbums.singer_id=songs.singer_idWHEREsinger_id=?但问题是我无法正确显示结果。假设这位歌手有3张专辑和11首歌曲。这就是我显

php - MySQL:LEFT JOIN 或 UNION 表并将列值设置为列名?

好吧,我知道我可能会因为提出这样的建议而受到批评,但这让我很好奇......假设我有这样一张表:content---------------|id|status|和这样的表格:attributes---------------------------|id|pid|name|value|一些属性可能在哪里|1|1|status|published||2|1|viable|yes|是否可以进行查询,以便将属性的NAME列中的值表示为列名?例子:SELECTa.nameAS{a.namevalue}FROMcontentcLEFTJOINattributesaONa.pid=c.id所以当