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

标签 mysql sql

这有点棘手。我需要从 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/

相关文章:

mysql - select 在这个位置无效----MYSQL 快把我逼疯了

MySQL 删除所有 id 大于给定数字的行

sql - 格式化包含多个嵌套 SELECTS 的 CASE 的更好方法

mysql - 表引用的顺序在 MySQL 中重要吗?

sql - 使用 Union 和 Order By 不会出现重复项

mysql - 加入表格并选择条目 < x 小时

php - 跨许多 PHP 请求的 MySQL 事务

mysql - 连接到远程服务器时无法在 perl 中执行 mysql 查询

mysql - mybatis映射器出现奇怪的错误

sql - 无法将 URL 设置为 MySQL 中的默认值