如何从1列中选择值,其中不同表中的某些列=不同的值

时间:2013-12-17 18:09:43

标签: mysql sql

这有点棘手。我需要从陆地中提取land_info中的值。但是我需要几个WHERE:partner.type ='Studie',land.land ='USA',sprog.sprog ='Engelsk',最后是udd.udd ='Bygning' ...伙伴和sprog表是多对多关系...因此在中间有一个名为partner_has_sprog的表..与partner和udd = partner_has_udd相同...

我已经使这个sql小提琴表... http://sqlfiddle.com/#!2/bdd7a4 ...基本上......我需要选择的是来自第二个合作伙伴(美国的一个)的land.land_info。任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:0)

是吗?

select l.land_info
from land l
join partner p on p.land = l.land
where p.landid = 2;

答案 1 :(得分:0)

如果您只想将所有表格链接在一起并不太困难,您只需要为每个表格使用INNER JOIN

SELECT
   P.partid
  ,P.type
  ,L.land_info
  ,L.land
  ,UDD.udd
  ,SPROG.sprog
FROM partner AS P
  INNER JOIN land AS L
    ON P.landid = L.landid

  INNER JOIN partner_has_udd AS PUDD
    ON P.partid = PUDD.partner_partid

    INNER JOIN udd AS UDD
      ON PUDD.udd_uddid = UDD.uddid

  INNER JOIN partner_has_sprog AS PSPR
    ON P.partid = PSPR.partner_partid

    INNER JOIN sprog AS SPROG
      ON PSPR.sprog_sprogid = SPROG.sprogid
;

这是更新的SQL小提琴:http://sqlfiddle.com/#!2/29990f/2/0

您在SQL小提琴的Scheme部分中输入了一个拼写错误,并将partner_has_sprog值插入sprog表。