有人从我在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";
答案 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