0

データベース テーブルに、commment_user という名前のフィールドがあります。このフィールドには、comment_id + user_id を次の形式で保存しました

110-26

上記の行の 110 は comment_id で、26 は user_id です。ここで、2 つのテーブルを LEFT JOIN したいと思います。

私は左の参加を持っています

`comments LEFT JOIN votes on comments.commment_user = votes.comment_id`

しかし、たとえば、votes.comment_id の最後に user_id を追加したい

`comments LEFT JOIN votes on comments.commment_user(13-10) = (votes.comment_id(13) - user_id(10))`

これは正しい SQL クエリではありません。SQL でそれを行う方法がわからないためです。理解してもらうためだけです。

上記の例(votes.comment_id(13) - user_id(10))では、「-」はマイナスとして表示されていませんが、13-10 を意味します。では, 2 つのテーブルを結合する際に 1 つのフィールドの末尾に user_id を追加することは可能ですか? はいの場合, SQL クエリにどのように記述すればよいですか?

4

1 に答える 1

1

機能が必要だと思いますconcat()

comments LEFT JOIN
votes
on comments.commment_user = concat(votes.comment_id, '-', votes.user_id)

これで問題は解決しますが、テーブルcomment_iduser_id別々に保存することをお勧めしvotesます。このような組み合わせをいじると、データベースの効率が低下します。この場合、エンジンは ID (おそらく数値) を文字列と比較する必要があるため、問題は拡大します。

于 2013-04-16T17:41:21.043 に答える