Vamos a ver si se entiende por qué te dije que esa consulta está muy mal escrita, y neecsitas volver a leer los manuales:
- Primero dices que estás juntando dos consultas en una, cada una de las cuales funciona bien por separado.
No puedes juntar dos consultas diferentes en una de cualquier forma. Sólo existen dos formas JOIN y UNION, y
no estás usando ninguna.
Código MySQL:
Ver originalWHERE post_status
= 'publish'
FROM 'wp_custom_post_fields' /* Esto tiene apostrofos. Por qué?*/ WHERE site_title
= 'Todos los discos'
- Luego, estás usando apóstrofos (') para el nombre de una tabla, lo que hace que MySQL lo tome como
cadena de texto, y no como tabla. Los nombres de objetos
pueden encerrarse con acentos agudos (`)
no apóstrofos.
- Estás usando un AND donde
tal vez corresponda un UNION, pero un UNION requiere dos consultas con la misma cantidad de campos, del mismo tipo y en el mismo orden... y tu segundo SELECT
no tiene ningún campo indicado.
¿Donde has visto un SELECT que no indique campos, al menos en forma general (*)? No existe eso.
Lo mires por donde lo mires, esa consulta simplemente no funcionará y te devolverá error de sintaxis.
Siempre.
Para resolverlo:
1) Si quieres los resultados de la primera y agregados los de la segunda, ambas consultas deben unirse con UNION y deben invocar la misma cantidad de campos, del mismo tipo y en el mismo orden.
2) Si cada registro de la primera está relacionado con uno o más de la segunda tabla, debes usar JOIN, indicando qué campo de la primera se relaciona con qué campo de la segunda. Para eso necesitamos saber cómo es la estructura y relaciones de ambas tablas.
El primer caso sería:
El segundo sería mas o menos:
Código MySQL:
Ver originalFROM `wp_posts` wp
INNER JOIN wp_custom_post_fields wf
ON wp.campoFK
= wf.campoPK
WHERE post_status
= 'publish' AND wf.site_title
= 'Todos los discos'
Por supuesto, necesitamos mejor información para saber lo que hay que escribir, pero lo que te muestro ya te puede dar una idea de lo mal escrita que está tu consulta...
Suerte.
PD: Una sugerencia. Descarga el MySQL Workbench de la web oficial de MySQL y usalo para escribir las consultas. Tiene un analizador sintáctico que te marcará los errores que existan, lo que te evitará por lo menos este tipo de contingencias.
Y usa el manual de referencia. Nadie conoce todo (no, tampoco nosotros), y todos usamos los manuales. Hasta los DBA con titulo y 20 años de experiencia... (yo no tengo tantos, pero tengo bastantes)