回答

收藏

mysql加入限制1

技术问答 技术问答 265 人阅读 | 0 人回复 | 2023-09-14

假设我有两个表一对一的关系。( k" k5 }2 G8 ]& y
而且,我想从每个主记录中选择列,从相关表中选择第一个记录。/ Q8 s" [1 L# a
我尝试了一些方法,但没有成功……
4 s2 X/ {! w& A) R8 g8 y在这里,我结束了这个SQL提琴:; ^- [$ j  g; \* ?, |- p
http://sqlfiddle.com/#!2/39fdb/3" B: r; W9 m" D/ q) I
问题是它不能从子选择中引用a.ID。+ q7 K- T. c* w: y) Q, z# N1 j+ k8 G8 Y, V
当然,这不起作用,但这只是我能想到的9 d  `" g. w0 K
select a.*,b.* from event a left join (select * from event_pictures where a.ID=article limit 1)b on a.ID=b.article;关于如何解决它的任何想法?+ t4 K% Y9 j& \! j2 E6 y1 T
                                                               
7 i" Y7 u& K4 R5 `    解决方案:                                                               
; R- |6 W8 b: O$ p                                                                不,你不能a.ID引用与相连的子选择a。您可以执行以下操作,但最好提供订单。否则,将没有第一线。b中的随机行(或多或少):5 N% T# g9 M1 N) L& b9 [: T' `
select a.*,b.* from event a   left join event_pictures b    on b.PK =                        --- the PRIMARY KEY       ( select bb.PK                --- of event_pictures          from event_pictures bb          where a.ID = bb.article         ORDER BY bb.something          limit 1       ) ;
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则