0

Stack Overflow で以前に尋ねた質問から、誰かが私に以下の質問をくれました。submitaddressesという 2 つのテーブルから "submissionid" を取得することになっています。ここで、zip = '$zip'. (「submissionid」と「zip」の両方が 2 つのテーブルに表示されます。)

次に、これらすべての「submissionid」に対応するフィールド「title」を調べたいと思います。フィールド「タイトルのみが表の提出に表示されます。

次に、結果のすべての「タイトル」のリストをクエリで生成したいと思います。

これを行うためにクエリを変更するにはどうすればよいですか? 以下のクエリは、 submitからの結果を省略しているようです。

$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";
4

2 に答える 2

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
于 2012-06-05T00:31:03.203 に答える
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
于 2012-06-05T00:42:52.153 に答える