0

私は2つのテーブルのレッスンと科目を持っています. 各レッスンは 1 つ以上の科目に分類できるため、1 対多の比率で「名前」科目のように分類できます: 数学、科学、社会科


これにより、名前、数学
の名前、科学の
名前、社会科の3 つのレコードが返されます。

これにより、ループして結合し、検索カウントが台無し
になります。代わりに、3 つすべてで 1 つのレコードを取得するにはどうすればよいですか? 私の検索数は正確で、名前が同じかどうかを確認して追加の件名を収集するために追加の PHP コードは必要ありませんか?

基本やってみた

SELECT * FROM lesson INNER JOIN subjects ON subject.id = lesson.subject

しかし、これは3つのエントリになります

編集
私のクエリは、私が導くよりも複雑です。上記の 2 つのテーブルとそれらの関係を追跡する中央のテーブルがあり
ます。このクエリは検索用です。これが私が持っているものです。

SELECT name, subject        
FROM lesson As l
INNER JOIN lesson_sub As ls
  ON ls.lesson_id = l.id
INNER JOIN subjects As s
  ON s.id = ls.subject_id
WHERE CONCAT(l.name, s.subject) LIKE '%KEYWORD%' AND s.id = SUBJECT_ID
4

3 に答える 3

0

サブジェクト名だけが必要な場合、なぜ内部結合するのでしょうか?

SELECT subject
FROM lesson

少なくとも 1 つのレッスンがある科目が必要な場合は、次のようにします。

SELECT DISTINCT subject
FROM lesson
INNER JOIN subjects ON subject.id = lesson.subject
于 2012-08-22T16:04:57.800 に答える