
Obtener los valores de una tupla especifica en tablas relacionadas
Publicado por Mk (6 intervenciones) el 23/02/2015 15:27:56
Hola de nuevo, estoy provando varias consultas para obtener un resultado específico pero no sale bien.
Tengo dos tablas relacionadas, pongamos por ejemplo estas:
Tabla keywords (id_k, id_d, keyword) y tabla positions (id_p, id_k, data, position)
Keywords tiene:
id_k | id_d | keyword |
--------------------------- |
1 | 1 | kw1 |
2 | 1 | kw2 |
3 | 1 | kw3 |
Positions tiene:
id_k | id_d | data | position |
----------------------------------------------- |
1 | 1 | 0000-00-00 | 0 |
2 | 1 | 2015-02-20 | 8 |
3 | 1 | 2015-02-22 | 5 |
4 | 2 | 0000-00-00 | 0 |
5 | 3 | 0000-00-00 | 0 |
Uso la consulta siguiente:
SELECT DISTINCT keywords.keyword, keywords.id_k, positions.data, positions.position FROM `keywords`, `positions` WHERE id_d=1 AND keywords.id_k=positions.id_k ORDER BY positions.id_p DESC
pero lo que me devuelve es:
keyword | id_k | data | position |
----------------------------------------------------- |
1 | 1 | 2015-02-20 | 8 |
1 | 1 | 2015-02-22 | 5 |
3 | 1 | 0000-00-00 | 0 |
2 | 1 | 0000-00-00 | 0 |
1 | 1 | 0000-00-00 | 0 |
quiero quitar los duplicados y dejar las tuplas con las fechas más recientes, es decir deberia de quedar así:
keyword | id_k | data | position |
----------------------------------------------------- |
1 | 1 | 2015-02-22 | 5 |
3 | 1 | 0000-00-00 | 0 |
2 | 1 | 0000-00-00 | 0 |
Qué hago mal en la consulta o como debería ser para obtener este resultado?
Gracias
Tengo dos tablas relacionadas, pongamos por ejemplo estas:
Tabla keywords (id_k, id_d, keyword) y tabla positions (id_p, id_k, data, position)
Keywords tiene:
id_k | id_d | keyword |
--------------------------- |
1 | 1 | kw1 |
2 | 1 | kw2 |
3 | 1 | kw3 |
Positions tiene:
id_k | id_d | data | position |
----------------------------------------------- |
1 | 1 | 0000-00-00 | 0 |
2 | 1 | 2015-02-20 | 8 |
3 | 1 | 2015-02-22 | 5 |
4 | 2 | 0000-00-00 | 0 |
5 | 3 | 0000-00-00 | 0 |
Uso la consulta siguiente:
SELECT DISTINCT keywords.keyword, keywords.id_k, positions.data, positions.position FROM `keywords`, `positions` WHERE id_d=1 AND keywords.id_k=positions.id_k ORDER BY positions.id_p DESC
pero lo que me devuelve es:
keyword | id_k | data | position |
----------------------------------------------------- |
1 | 1 | 2015-02-20 | 8 |
1 | 1 | 2015-02-22 | 5 |
3 | 1 | 0000-00-00 | 0 |
2 | 1 | 0000-00-00 | 0 |
1 | 1 | 0000-00-00 | 0 |
quiero quitar los duplicados y dejar las tuplas con las fechas más recientes, es decir deberia de quedar así:
keyword | id_k | data | position |
----------------------------------------------------- |
1 | 1 | 2015-02-22 | 5 |
3 | 1 | 0000-00-00 | 0 |
2 | 1 | 0000-00-00 | 0 |
Qué hago mal en la consulta o como debería ser para obtener este resultado?
Gracias
Valora esta pregunta


0