私は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ますか?