質問: 2つのテーブルからデータ取得 いつもお世話になっております。 以下のようなテーブルがあります。 ---------- create table if not exists `students` ( `id` int(11) not null auto_increment, `student_number` bigint(20) default null, `name` varchar(20) collate utf8_unicode_ci default null, primary key (`id`) ) ---------- create table if not exists `student_upload` ( `student_number` bigint(20) not null, `upload_id` int(11) not null ) ---------- データは以下のように登録されています。 students ---------- id|student_number|name 1 |11111 |いちろう 2 |22222 |じろう 3 |33333 |さぶろう student_upload ---------- student_number|upload_id 11111 |1 11111 |2 22222 |1 22222 |2 ---------- student_upload.upload_id=1 のデータを取得したいので 下記のようなsql文を発行しているのですが、student_upload.upload_id=2 の データも取得されてしまいます。 select * from students s, student_upload up where up.upload_id=1 and up.student_number=s.student_number よろしくご教示お願いいたします。 <環境> php:5.3.5 mysql:5.0.7
回答: あ、ごめんなさいindexではなくunique alter table `student_upload` add unique (`student_number`,`upload_id`); ちなみにdistinctでデータが重複するはずがないので おそらく根本的なところでなにか勘違いしていると思います。 データの取り出しはなにをつかっていますか? プログラム処理をして単に処理を二回しているような気がするのですが・・・