RE:Ordenar con otra tabla
Creo en este caso... tendrias que usar algun JOIN para unir las tablas
Seria algo como esto:
SELECT Tabla1.*,Tabla3.Preferencia
FROM Tabla1, Tabla3 INNER JOIN Tabla1 ON Tabla3.campollave = Tabla1.campollave
WHERE (Tabla1.campobuscado Like Tabla2.campobusqueda)
ORDER BY Tabla3.Preferencia;
Algo asi.. Aclaro lo hice de manera rápida y no he probado esto. Pero basicamente seria la idea.
La tabla1 y 3 deben estan Relacionadas por un campo comun, como por ejemplo la clave o ID, luego ya conmbinadas... puedes usar el otro campo para lo que gustes y mandes...
Te pongo un ejemplo en el que hago algo similar. (pero sin WHERE)
SELECT Ladafonica.ID as ID, Ladafonica.ciudad AS poblacion, Estados.estado AS estado,"Ladafonica" AS origen;
FROM ladafonica LEFT OUTER JOIN estados ;
ON estados.dig_estado == ladafonica.dig_estado;
ORDER BY estado,pais;
En este caso pone los campos de una tabla y solo el campo estado de la otra... pero para que pueda funcionar debe tener una relacion (en este caso el estado el Dig_estado que mas bien es una clave de cada estado 01, 02, 03 ...etc en vez del nombre.
Pero al final ordeno por el ESTADO (ya el nombre)
Que es algo que estas intentando hacer...
LEE ALGO DE LOS JOIN
SUERTE!