【问题标题】:Select multiple values from one table based on values in another根据另一个表中的值从一个表中选择多个值
【发布时间】:2015-01-25 00:40:21
【问题描述】:

我想选择plot 表中存在于watchlist 中的所有行。例如,对于我上传到SQLFiddle 的示例,我应该能够使用查询在plot 中返回行358,因为它们存在于watchlist 中。问题是,我不知道该怎么做。有什么想法吗?

这是我到目前为止所做的:

SELECT id, p_id, area, jobs from plot WHERE code="SA" AND p_id="3";

但只选择一行,但我知道它需要某种子查询,即将WHERE code="SA" AND p_id="3"; 替换为对 watchlist 表的引用。

【问题讨论】:

    标签: mysql sql join


    【解决方案1】:

    您可以使用INNER JOIN 进行检查:

    SELECT t1.id
         , t1.p_id
         , t1.area
         , t1.jobs 
    FROM plot t1 
    JOIN watchlist t2 ON t1.p_id = t2.p_id 
    

    SQLFiddle

    【讨论】:

      【解决方案2】:

      返回第 3、5 和 8 行

      SELECT *
      FROM plot, watchlist
      WHERE plot.p_id = watchlist.p_id;
      

      【讨论】:

        【解决方案3】:

        正如您从其他回复中看到的那样 - 有多种解决方案,所以我将添加一个 SUBQUERY 解决方案,因为您提到了子查询。

        选择 id、p_id、区域、工作 从情节 在哪里 p_id (选择 p_id 来自观察名单);

        【讨论】:

          【解决方案4】:

          试试这个,它会起作用的:

          SELECT t1.* from `plot` t1 JOIN `watchlist` t2 ON t1.`P_ID`=t2.`P_ID`
          

          SQL Fiddle

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-10-25
            • 2016-12-05
            • 2021-03-29
            • 1970-01-01
            相关资源
            最近更新 更多