Me estoy poniendo viejo o las consultas que necesito para escribir se vuelven cada vez más complicadas. La siguiente consulta obtendrá todos los tasks
asociados con el usuario.fusionando dos consultas SELECT
"SELECT `date`
FROM `tasks`
WHERE `user_id`= 1;"
La tabla tasks
es (id
, date
, user_id
, url_id
);
Ahora, tengo que conseguir así los registros que url_id
asociados con el usuario A través del
`urls` table (`id`, `user_id`)
La consulta independiente se vería así:
"SELECT `t1`.`data`
FROM `tasks` `t1`
JOIN `urls` `u1` ON `u1`.`id` = `t1`.`url_id`
WHERE `u1`.user_id` = 1;"
Sin embargo, es posible fusionar estas dos consultas en una sola consulta? Mi lógica dice que debería ser, aunque no veo cómo hacer la unión real.
¿Quiso decir 'data' or' date' en su última consulta? Además, si no está seleccionando ningún dato de la tabla de URL, ¿realmente necesita unirse a él? (La respuesta podría ser "sí, para asegurarse de que haya una entrada de URL para esa ID de usuario".) Y por qué tantos back-ticks; ¡es tan malo como MS SQL Server y corchetes! –
He escrito la consulta en el camino, por lo que naturalmente dejé algunos errores. Tienes razón, tenía que ser 'date' no' data'. Normalmente ignoraría un comentario sobre 'back-ticks', aunque tiene una reputación bastante alta, así que soy curioso por qué está diciendo que "es tan malo como MS SQL Server y corchetes". El objetivo de los backticks es garantizar que el servidor MySQL pueda identificar rápidamente nombres de tablas y columnas y evitar confusiones al usar palabras clave reservadas, como 'left' o' right' en conjuntos anidados. – Gajus
La misma afirmación se hace para corchetes por usuarios de MS SQL Server. Me parece feo y no es estándar. Ningún otro DBMS admite marcas de retroceso o corchetes para lo que el estándar SQL llama 'identificadores delimitados', que el estándar dice que están entre comillas dobles; las comillas simples están reservadas para las cadenas. Diferentes DBMS tienen diferentes reglas para el uso de palabras clave. El que uso principalmente permite palabras clave como identificadores en muchos lugares. Lo mejor es evitar las comillas evitando las palabras clave como identificadores. –