这有点棘手。我需要从 land 中提取 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 ..任何帮助将不胜感激!
最佳答案
如果您只是想将所有表链接在一起,这并不太困难,您只需为每个表使用 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 Fiddle:http://sqlfiddle.com/#!2/29990f/2/0
您的 SQL Fiddle 的“Scheme”部分出现拼写错误,并将 partner_has_sprog
值插入到 sprog
表中。
关于mysql - 如何从 1 列中选择值,其中不同表中的某些列 = 不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20641623/