0

3 つのテーブルを結合する次のクエリ:

select * from product_group_pids as pgp  

join product_group_attributes pga on pga.group_id=pgp.group_id

join product_group_attribute_values pgav on pgav.group_id=pgp.group_id

where pgp.group_id = (219138)

group_id が終了する 3 つのテーブルすべてで、結果には同じ group_id が 3 回表示されます。一度だけ表示するように制限するにはどうすればよいですか? エイリアス名を作成しても、テーブル内の複数のフィールドに対して明示的に指定する意味はありません。結合ステートメントで制限するための提案を得ることができますか?

4

2 に答える 2

1

NATURAL JOINまたはUSINGの代わりに使用してみてくださいON。これにより、使用されている両方の列が 1 つに折りたたまれます。

于 2013-09-28T10:56:47.707 に答える
0

最後に、いくつかの代替案を見つけました。

MySQL joins: ON vs. USING vs. Theta-style


SELECT * FROM film JOIN film_actor ON (film.film_id = film_actor.film_id)
**SELECT * FROM film JOIN film_actor USING (film_id)**
SELECT * FROM film, film_actor WHERE film.film_id = film_actor.film_id

リソース:ここで 私はそれが誰かを助けると思う...

于 2013-09-28T11:04:03.603 に答える