Realmente agradecería algo de ayuda con una consulta SQL en tablas. Me doy cuenta de que este tipo de cosas se preguntan constantemente, pero no puedo encontrar una pregunta lo suficientemente similar para dar sentido a las respuestas.SQL: Seleccione de un criterio de coincidencia de tablas en otro?
Quiero seleccionar las filas de table_A
que tienen una etiqueta correspondiente en table_B
.
Por lo tanto, por ejemplo, "seleccionar filas de table_a
que están etiquetadas como 'silla'" devolvería table_C
.
Además, id
es un único en table_a
, y no en table_b
.
table_A: table_B: table_C:
id object id tag id object
1 lamp 1 furniture 3 stool
2 table 2 furniture 4 bench
3 stool 3 furniture
4 bench 4 furniture
4 chair
3 chair
Alternativamente, ¿hay una mejor manera de organizar los datos?
@ sugerencia de rjschnorenberg es mejor si usted tiene el lujo de cambiar el esquema. En ese caso, se uniría a las tres tablas Items <> Item_Tags <> Tags usando dos cláusulas INNER JOIN. –
Genial, eso es muy útil. No sabía que podría filtrar columnas de la tabla unida así. –
En realidad, también puede escribir la línea de unión como "unión interna table_B B en A.ID = B.ID AND B.tag = 'chair'", pero prefiero poner filtros en WHERE. –