私は3つのテーブルを持っています:
REGISTERS
------------------
id, name, idColony
------------------
1 , some, 3
2 , othe, 6
3 , sann, 3
------------------
EXTRA_COLONIES
------------------
id, idRegister, idColony
------------------
1, 1, 4
2, 1, 5
3, 2, 8
-----------------
COLONIES
------------------
1, some_colony
2, another_colony
...
...
eg というテーブルがありますREGISTER
。このテーブルには、テーブルからのidColony
(1idColony
は必須) があります。COLONIES
ただし、このREGISTERS
レコード/行には、最大 10 個の追加idColony
の s を含めることができます。それが私が別のテーブルに分かれた理由です。
だから私がやっているクエリはこれです:
SELECT table1.field,table2.field...
FROM (`REGISTERS`)
JOIN `EXTRA_COLONIES` ON `EXTRA_COLONIES`.`idRegister` = `REGISTERS`.`id`
WHERE (REGISTERS.idColony = '1' or EXTRA_COLONIES.idColony = '1')
GROUP BY `REGISTERS`.`id`
LIMIT 30
このクエリの問題EXTRA_COLONIES
は、リンクが原因であるレコードのみを取得することです。JOIN
EXTRA_COLONIES
ON EXTRA_COLONIES
.idRegister
= REGISTERS
.id
どうすればすべてのレコードを取得できEXTRA_COLONIES
ますか?