退会済みユーザー2021/05/22 06:31すみません、`FROM a JOIN b`とした場合`b`という名前で結合されると勘違いしていました しかし、`a`、ここでいえば`borrowings`という名前で結合されるとすると、`WHERE句`で絞り込まれるのは`borrowings`ですよね? そこで`books.title AS 〜`とすると、絞り込まれていない`books`の作者全てが出力されるのではないでしょうか?
maisumakun2021/05/22 06:33 編集> `WHERE句`で絞り込まれるのは`borrowings`ですよね? 違います。「borrowingsとbooksをJOINした1枚のテーブル」に対するWHERE条件として動作します。なので、あとからbooksに属する列を取ってきたとしてもWHEREの絞り込みは適用されています。
maisumakun2021/05/22 06:35元のページにも「今回は”books”テーブルや”borrowings”テーブルではなく、この2つを結合した 新たなテーブル に対してクエリを実行します。」と明記してあります。
退会済みユーザー2021/05/22 06:46なるほど… しかしそうなると、`SELECT文`で`books.`や`borrowing.`が使えるのはなぜでしょう? `title`や`returndate`だけではいけないのでしょうか?
maisumakun2021/05/22 06:48 編集> `title`や`returndate`だけではいけないのでしょうか? 片方のテーブルにしかない列であればそれでも構いません。両方のテーブルに同名の列がある場合に備えて、元のテーブル名を含めて指定できるようになっています。
退会済みユーザー2021/05/22 05:35すみません、JOIN句だと`books`という名前で`borrowings`と結合するのだと勘違いをしていました。 しかし、`borrowing`という名前で結合するのだとすると、`books.title AS 〜`という所で私が言ったような問題が起こるのではないでしょうか?
sazi2021/05/22 05:42selectにおいて、「WHERE句で絞り込まれてないテーブル」というのは表現が変です。 「WHERE句で絞り込まれるテーブル」ですから、「絞り込まれる」以外はselect結果に出力されません。 多分SQLと結果のイメージが定まっていないのではないでしょうか。
sazi2021/05/22 05:54 編集from句で指定されるのは表です。 Excelのシートで例えるなら、 結合(JOIN)すると、結合したテーブルの項目が横に追加されるイメージです。 ON句の項目指定で、追加した表を同じ項目で並びを揃えてくれる。 where条件は、その表をフィルターします。
退会済みユーザー2021/05/22 05:56まだ分からないです… ここも勘違いしてるのかもしれないのですが、`FROM a JOIN b ON a.id = b.xid`の後に`b.name`と書くと呼び出されるのは結合も何もされていないただのテーブルbですよね?
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/05/22 06:31
2021/05/22 06:33 編集
2021/05/22 06:35
退会済みユーザー
2021/05/22 06:46
2021/05/22 06:48 編集
退会済みユーザー
2021/05/22 06:49