繁体   English   中英

MySQL咨询内联接我想

[英]MySQL consult inner join I think

我认为我有2个表的MySql查询中的菜鸟问题。

我试图在这种情况下,使用"inner join"联接"inner join"的MySql查询中包含30条注释(评论,答案),但是咨询使我得到244个结果。

这些表的名称是comentarios和respuestas,这些表在列comentario_serviciorespuesta_servicio属于同一服务“ TI”。

我有16个答案(respuesta_servicio)和14个评论(comentario_servicio),因此正确的查询必须向我显示30个结果。

这是我的数据。

http://sqlfiddle.com/#!2/86b03/1

这是我的咨询:

select * from respuestas  join comentarios where comentario_servicio = respuesta_servicio

如果要查找30个结果(这是两个表中所有记录的组合),那么您可能想使用UNION查询。

使用您提供的表,这是查询的外观。 UNION的关键是具有相同名称的列,这就是为什么在后半部分有NULL值的原因。

SELECT
  id_respuestas `id`
  ,respuesta_servicio `servicio`
  ,respuesta_usuario `usuario`
  ,respuesta_respuesta `text`
  ,respuesta_comentario `related_comment`
  ,respuesta_fecha `fecha`
  ,'Respuestas' `type` -- one way to identify the type of record
FROM
  respuestas

union

SELECT
  id_comentario `id`
  ,comentario_servicio `servicio`
  ,comentario_usuario `usuario`
  ,comentario_comentario `text`
  ,NULL `related_comment`
  ,comentario_fecha `fecha`
  ,'Comentario' `type` -- one way to identify the type of record
FROM
  comentarios

可用的SQL小提琴: http ://sqlfiddle.com/#!2 / 86b03 / 19

UNIONUNION ALL工作方式: UNIONUNION ALL 什么区别?

就像其他人说的那样,如果您想要30条记录作为结果,则您正在寻找UNION而不是JOIN 所以试试这个:

select
  'Comentario' `Table`
  ,id_comentario `id_comentario`
  ,0 `id_respuestas`
  ,comentario_servicio `servicio`
  ,comentario_usuario `usuario`
  ,comentario_comentario `text`
  ,comentario_fecha `fecha`
from comentarios
union
select
  'Respuestas' `Table`
  ,respuesta_comentario `id_comentario`
  ,id_respuestas `id_respuestas`
  ,respuesta_servicio `servicio`
  ,respuesta_usuario `usuario`
  ,respuesta_respuesta `text`
  ,respuesta_fecha `fecha`
from respuestas
order by `id_comentario`,`id_respuestas`

http://sqlfiddle.com/#!2/86b03/23

如果您确实想要JOIN ,则只会得到20个结果。 首先,您没有使用右键来链接表。 Servicio到处都是TI ,所以这就是为什么您获得224个结果(16 * 14 = 224 ...不是244 :)的原因。 因此,如果我正确理解您的结构,则该关系为1对多... 1 Comentario可以具有多个Respuestas 如果是这样,您将获得20个结果。 其次,您需要使用OUTER JOIN 另外,如果您想为TI “ servicio”录制音乐,请在SELECT语句后添加WHERE comentario_servicio = 'TI' 所以看这个例子:

SQL小提琴

MySQL 5.5模式设置

CREATE TABLE `comentarios` (
  `id_comentario` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `comentario_servicio` varchar(45) NOT NULL,
  `comentario_usuario` varchar(45) NOT NULL,
  `comentario_comentario` varchar(500) NOT NULL,
  `comentario_fecha` varchar(45) NOT NULL,
  PRIMARY KEY (`id_comentario`)
);

INSERT INTO `comentarios` (`id_comentario`, `comentario_servicio`, `comentario_usuario`, `comentario_comentario`, `comentario_fecha`) VALUES (46,'T.I','paulnoris','Increible servicio','2015-05-04, 1:50'),(47,'T.I','paulnoris','Al igual que mi compañero estoy muy contento con los resultados que ah tenido la pagina','2015-05-04, 1:59'),(48,'T.I','paulnoris','Asi es estamos contentos con los resultados de la pagina en tan poquito tiempo todo lo que hemos ava','2015-05-04, 2:07'),(49,'T.I','paulnoris','Asi es estamos contentos con los resultados de la pagina en tan poquito tiempo todo lo que hemos ava\r\nquisiera poder escribir muchisimas cosas mas pero pues se entiende que aveces no se puede','2015-05-04, 2:09'),(50,'T.I','paulnoris','veamos cual es el limite de comentarios que puedo hacer si nomas se supone que son 200 letras aver que tanto es porque esta cabron saber cuantas son sin escribirlas todas veamos ya me canse y ya me qu','2015-05-04, 2:10'),(51,'T.I','paulnoris','el alex se la come cruda','2015-05-04, 10:10'),(52,'T.I','paulnoris','se la come el alex','2015-05-04, 13:17'),(53,'T.I','paulnoris','lorem dsad djsaiod jiodjsaoi daojdjroig joid sjoidjs aiodj idjoasisjd osidj aiodj aosijd oiajdos ijdiojigjg fioj giofdjgoifjgoifdj goijaoidj aoisdsaiodjs adiosj diaj dioj iogjfdoigd jgoidfjoisdjdfsdf ','2015-05-06, 11:03'),(54,'T.I','papanoel','Hola amigos tengo una duda sobre si puedo integrarme a otros servicios perteneciendo ya a este','2015-05-06, 12:15'),(55,'T.I','paulnoris','El manchado me la pela','2015-05-06, 13:37'),(56,'T.I','paulnoris','El gilberto se la come cruda','2015-05-06, 16:18'),(57,'T.I','paulnoris','El oswaldo es gay','2015-05-06, 16:19'),(58,'T.I','paulnoris','jasidoja diosajdas','2015-05-06, 18:09'),(59,'T.I','paulnoris','dsadsadsadsada','2015-05-06, 22:08');


CREATE TABLE `respuestas` (
  `id_respuestas` int(11) NOT NULL AUTO_INCREMENT,
  `respuesta_usuario` varchar(45) NOT NULL,
  `respuesta_servicio` varchar(45) NOT NULL,
  `respuesta_respuesta` varchar(500) NOT NULL,
  `respuesta_comentario` int(11) NOT NULL,
  `respuesta_fecha` varchar(45) NOT NULL,
  PRIMARY KEY (`id_respuestas`)
);

INSERT INTO `respuestas` (`id_respuestas`, `respuesta_usuario`, `respuesta_servicio`, `respuesta_respuesta`, `respuesta_comentario`, `respuesta_fecha`) VALUES (8,'paulnoris','T.I','blabla',53,'2015-05-06, 11:43'),(9,'paulnoris','T.I','a',53,'2015-05-06, 11:45'),(10,'paulnoris','T.I','b',53,'2015-05-06, 11:45'),(11,'paulnoris','T.I','c',53,'2015-05-06, 11:45'),(12,'paulnoris','T.I','t',52,'2015-05-06, 11:45'),(13,'paulnoris','T.I','q',52,'2015-05-06, 11:45'),(14,'paulnoris','T.I','y',52,'2015-05-06, 11:45'),(15,'paulnoris','T.I','dsdasda',51,'2015-05-06, 11:51'),(16,'papanoel','T.I','blablabla',53,'2015-05-06, 12:00'),(17,'papanoel','T.I','asi es viejon echale ganas',50,'2015-05-06, 12:00'),(18,'paulnoris','T.I','Desafortunadamente no mi amigo tienes que aba',54,'2015-05-06, 12:16'),(19,'paulnoris','T.I','djsidjo dsaidjoa',55,'2015-05-06, 13:37'),(20,'paulnoris','T.I','Si se la come cruda',56,'2015-05-06, 16:18'),(21,'paulnoris','T.I','Si vale madre es gay',57,'2015-05-06, 16:19'),(22,'paulnoris','T.I','jidsojd iodjs',58,'2015-05-06, 18:10'),(23,'paulnoris','T.I','rgtgrgdgf',59,'2015-05-06, 22:08');

查询1

select * from comentarios
left outer join respuestas on id_comentario = respuesta_comentario

结果

| id_comentario | comentario_servicio | comentario_usuario |                                                                                                                                                                                    comentario_comentario |  comentario_fecha | id_respuestas | respuesta_usuario | respuesta_servicio |                           respuesta_respuesta | respuesta_comentario |   respuesta_fecha |
|---------------|---------------------|--------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------|---------------|-------------------|--------------------|-----------------------------------------------|----------------------|-------------------|
|            46 |                 T.I |          paulnoris |                                                                                                                                                                                       Increible servicio |  2015-05-04, 1:50 |        (null) |            (null) |             (null) |                                        (null) |               (null) |            (null) |
|            47 |                 T.I |          paulnoris |                                                                                                                 Al igual que mi compañero estoy muy contento con los resultados que ah tenido la pagina |  2015-05-04, 1:59 |        (null) |            (null) |             (null) |                                        (null) |               (null) |            (null) |
|            48 |                 T.I |          paulnoris |                                                                                                     Asi es estamos contentos con los resultados de la pagina en tan poquito tiempo todo lo que hemos ava |  2015-05-04, 2:07 |        (null) |            (null) |             (null) |                                        (null) |               (null) |            (null) |
|            49 |                 T.I |          paulnoris |          Asi es estamos contentos con los resultados de la pagina en tan poquito tiempo todo lo que hemos ava quisiera poder escribir muchisimas cosas mas pero pues se entiende que aveces no se puede |  2015-05-04, 2:09 |        (null) |            (null) |             (null) |                                        (null) |               (null) |            (null) |
|            50 |                 T.I |          paulnoris | veamos cual es el limite de comentarios que puedo hacer si nomas se supone que son 200 letras aver que tanto es porque esta cabron saber cuantas son sin escribirlas todas veamos ya me canse y ya me qu |  2015-05-04, 2:10 |            17 |          papanoel |                T.I |                    asi es viejon echale ganas |                   50 | 2015-05-06, 12:00 |
|            51 |                 T.I |          paulnoris |                                                                                                                                                                                 el alex se la come cruda | 2015-05-04, 10:10 |            15 |         paulnoris |                T.I |                                       dsdasda |                   51 | 2015-05-06, 11:51 |
|            52 |                 T.I |          paulnoris |                                                                                                                                                                                       se la come el alex | 2015-05-04, 13:17 |            12 |         paulnoris |                T.I |                                             t |                   52 | 2015-05-06, 11:45 |
|            52 |                 T.I |          paulnoris |                                                                                                                                                                                       se la come el alex | 2015-05-04, 13:17 |            13 |         paulnoris |                T.I |                                             q |                   52 | 2015-05-06, 11:45 |
|            52 |                 T.I |          paulnoris |                                                                                                                                                                                       se la come el alex | 2015-05-04, 13:17 |            14 |         paulnoris |                T.I |                                             y |                   52 | 2015-05-06, 11:45 |
|            53 |                 T.I |          paulnoris | lorem dsad djsaiod jiodjsaoi daojdjroig joid sjoidjs aiodj idjoasisjd osidj aiodj aosijd oiajdos ijdiojigjg fioj giofdjgoifjgoifdj goijaoidj aoisdsaiodjs adiosj diaj dioj iogjfdoigd jgoidfjoisdjdfsdf  | 2015-05-06, 11:03 |             8 |         paulnoris |                T.I |                                        blabla |                   53 | 2015-05-06, 11:43 |
|            53 |                 T.I |          paulnoris | lorem dsad djsaiod jiodjsaoi daojdjroig joid sjoidjs aiodj idjoasisjd osidj aiodj aosijd oiajdos ijdiojigjg fioj giofdjgoifjgoifdj goijaoidj aoisdsaiodjs adiosj diaj dioj iogjfdoigd jgoidfjoisdjdfsdf  | 2015-05-06, 11:03 |             9 |         paulnoris |                T.I |                                             a |                   53 | 2015-05-06, 11:45 |
|            53 |                 T.I |          paulnoris | lorem dsad djsaiod jiodjsaoi daojdjroig joid sjoidjs aiodj idjoasisjd osidj aiodj aosijd oiajdos ijdiojigjg fioj giofdjgoifjgoifdj goijaoidj aoisdsaiodjs adiosj diaj dioj iogjfdoigd jgoidfjoisdjdfsdf  | 2015-05-06, 11:03 |            10 |         paulnoris |                T.I |                                             b |                   53 | 2015-05-06, 11:45 |
|            53 |                 T.I |          paulnoris | lorem dsad djsaiod jiodjsaoi daojdjroig joid sjoidjs aiodj idjoasisjd osidj aiodj aosijd oiajdos ijdiojigjg fioj giofdjgoifjgoifdj goijaoidj aoisdsaiodjs adiosj diaj dioj iogjfdoigd jgoidfjoisdjdfsdf  | 2015-05-06, 11:03 |            11 |         paulnoris |                T.I |                                             c |                   53 | 2015-05-06, 11:45 |
|            53 |                 T.I |          paulnoris | lorem dsad djsaiod jiodjsaoi daojdjroig joid sjoidjs aiodj idjoasisjd osidj aiodj aosijd oiajdos ijdiojigjg fioj giofdjgoifjgoifdj goijaoidj aoisdsaiodjs adiosj diaj dioj iogjfdoigd jgoidfjoisdjdfsdf  | 2015-05-06, 11:03 |            16 |          papanoel |                T.I |                                     blablabla |                   53 | 2015-05-06, 12:00 |
|            54 |                 T.I |           papanoel |                                                                                                           Hola amigos tengo una duda sobre si puedo integrarme a otros servicios perteneciendo ya a este | 2015-05-06, 12:15 |            18 |         paulnoris |                T.I | Desafortunadamente no mi amigo tienes que aba |                   54 | 2015-05-06, 12:16 |
|            55 |                 T.I |          paulnoris |                                                                                                                                                                                   El manchado me la pela | 2015-05-06, 13:37 |            19 |         paulnoris |                T.I |                              djsidjo dsaidjoa |                   55 | 2015-05-06, 13:37 |
|            56 |                 T.I |          paulnoris |                                                                                                                                                                             El gilberto se la come cruda | 2015-05-06, 16:18 |            20 |         paulnoris |                T.I |                           Si se la come cruda |                   56 | 2015-05-06, 16:18 |
|            57 |                 T.I |          paulnoris |                                                                                                                                                                                        El oswaldo es gay | 2015-05-06, 16:19 |            21 |         paulnoris |                T.I |                          Si vale madre es gay |                   57 | 2015-05-06, 16:19 |
|            58 |                 T.I |          paulnoris |                                                                                                                                                                                       jasidoja diosajdas | 2015-05-06, 18:09 |            22 |         paulnoris |                T.I |                                 jidsojd iodjs |                   58 | 2015-05-06, 18:10 |
|            59 |                 T.I |          paulnoris |                                                                                                                                                                                           dsadsadsadsada | 2015-05-06, 22:08 |            23 |         paulnoris |                T.I |                                     rgtgrgdgf |                   59 | 2015-05-06, 22:08 |

尝试这个

select * from respuestas inner join comentarios on comentario_servicio = respuesta_servicio

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM