从表A和B中提取结果的查询,然后使用结果从表A中获取行

时间:2012-06-05 00:24:46

标签: php mysql

有人从我在Stack Overflow上提出的上一个问题中给出了以下查询。它应该从两个表中提取“submissionid”,称为提交地址,其中zip = '$zip'。 (“submissionid”和“zip”都出现在两个表中。)

然后,我想查找对应所有这些“提交者”的字段“标题”。 “标题”字段仅显示在表格提交

然后,我希望查询生成所有结果“标题”的列表。

如何修改查询来执行此操作?以下查询似乎省略了提交的结果。

$sqlStr = "SELECT s.title, s.points, s.submissionid
         FROM submission s 
         INNER JOIN addresses ad
         on ad.submissionid = s.submissionid
         WHERE ad.zip = '$zip'
     ORDER BY s.points DESC, s.title ASC";

2 个答案:

答案 0 :(得分:0)

只需将OR s.zip = '$zip'添加到您的WHERE子句中即可。通过一些额外的整理,您的查询将变为:

SELECT   submission.title, submission.points, submission.submissionid
FROM     submission JOIN addresses USING (submissionid)
WHERE    submission.zip = '$zip' OR addresses.zip = '$zip'
ORDER BY submission.points DESC, submission.title ASC

答案 1 :(得分:0)

不确定这是否是你想要的。

将原始查询放入子查询中,并选择具有相同提交ID的所有提交

SELECT
  title,
  points,
  submissionid
FROM submission
WHERE submissionid IN (
  # Original Query
  SELECT s.submissionid
  FROM submission s
    JOIN addresses ad ON ad.submissionid = s.submissionid
  WHERE ad.zip = '$zip'
)
ORDER BY 
  points DESC, 
  title ASC