Para categorías y subcategorías, mejor es ponerlas en una misma tabla y agregar un campo que indique el id de la categoría a la que pertenece.. para las categorías de nivel 1 (que no son subcategorías de nadie) puedes poner el valor de este campo en 0 ó -1
--id-- ----Nombre---- --otros_campos-- --id_padre--
---------------------------------------------------------------
...1...........php................bla, bla...................0
...2..........scripts.............ble, ble...................1
...3.......tutoriales............bli, bli ....................1
...4..........Flash...............blo, blo...................0
...5........de Pago............blu, blu....................2
Eso significa que "php" y "flash" son categorías principales... scripts, y tutoriales son subcategorías de "php" y "de Pago" es una subcategoría de "scripts" (o sea una sub-sub de php)...
De esta manera sólo se hará la consulta en una tabla... todos los "padres" tendrán el campo id_padre en 0...
No sé si se entendi.. pero yo lo haría así..
saludos