假设我有两个表一对一的关系。( 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 ) ;