我需要你的帮助与SQL查询。复杂的搜索SQL查询
我需要在该mathing元素具有smalest顺序表中选择值,目前我有以下查询:
SELECT p.confirmation,
p.lname,
p.fname,
p.profiletype,
a.address1,
a.city,
c.contactinfo
FROM profile p
LEFT JOIN contact c
ON p.confirmation = c.profileid
AND c.ord = 1
LEFT JOIN address a
ON p.confirmation = a.profileid
AND a.ord =1
这项工作做得很好,当smalest“a.ord”或c.ord “是1,但最小值不会永远是一个,也可能是其他任何数字,所以我试着不更迭如下:
SELECT p.confirmation,
p.lname,
p.fname,
p.profiletype,
a.address1,
a.city,
c.contactinfo
FROM profile p
LEFT JOIN contact c
ON p.confirmation = c.profileid
min(c.ord)
LEFT JOIN address a
ON p.confirmation = a.profileid
min(a.ord)
我已经取代” AND a.ord = 1 “by”min(a.ord)“没有成功。
我怎么能做到这一点,没有做出两个单独的查询。
有没有一种方法,我可以在排序的
SELECT c.ord FROM contact c WHERE p.confirmation = c.profileid ORDER BY c.ord LIMIT 1
当前SQL里面添加的东西?
谢谢!
close ...我有多个联系人为每个配置文件,并按“ord”排序。我需要每个配置文件的第一个联系人显示在我的搜索中。类似于:AND c.ord =(SELECT ord FROM contact where WHERE profileid = p.confirmation ORDER BY ord LIMIT 1)。但我现在知道,这是不正确的SQL! – 2013-03-26 19:25:47
@DanielBerthiaume。 。 。这就是这个查询正在做的事情。它只是将ord的最小值计算为单独的子查询。 – 2013-03-26 19:27:48
谢谢你,答案并没有解决我的问题,但它确实帮助我找到了我自己的答案,并且对嵌套select有所了解。 – 2013-03-26 19:47:34