Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 选择多个表_Mysql_Sql_Join - Fatal编程技术网

Mysql 选择多个表

Mysql 选择多个表,mysql,sql,join,Mysql,Sql,Join,这是我要查询的数据库结构的一部分: 这些关系是: article.art_作者-user.usr_id article.art\u id-标记article.rel\u art\u id tag_article.rel_tag_id-tag.tag_id 如果可能的话,我想在一个查询中选择从所选用户(通过usr_id)编写的文章或具有所选标记(通过tag_id)的文章 我尝试过这一点,但没有达到预期效果: SELECT * FROM ((article J

这是我要查询的数据库结构的一部分:

这些关系是:

  • article.art_作者-user.usr_id
  • article.art\u id-标记article.rel\u art\u id
  • tag_article.rel_tag_id-tag.tag_id
如果可能的话,我想在一个查询中选择从所选用户(通过usr_id)编写的文章或具有所选标记(通过tag_id)的文章

我尝试过这一点,但没有达到预期效果:

SELECT * FROM 
                ((article JOIN user on article.art_author = user.usr_id)
                JOIN
                tag_article on article.art_id = tag_article.rel_art_id)
                JOIN
                tag on tag_article.rel_tag_id = tag.tag_id
                WHERE
                article.art_lang = '$cur_lang'
                $sql_in
                ORDER BY
                article.art_date desc
                LIMIT $first_record, $range
选择不同的a.art\u id
根据a条,
用户u,
tag_第ta条,
标签t
其中a.art\u author=u.user\u id
和ta.rel_art_id=a.art_id
和ta.rel_tag_id=t.tag_id
和(u.usr\u id in()或t.tag\u id in())
我编写了“所有关节”,以便您可以选择所需的所有列,但如果您只需要文章数据,则可以更快地完成:

select a.art_id
    from article a,
    tag_article ta
where a.art_id=ta.rel_art_id
    and (a.art_author in (<your selected users>) or ta.rel_tag_id in (<your selected tags>))
选择一个艺术id
根据a条,
tag_文章ta
其中a.art\u id=ta.rel\u art\u id
和(a.art\u author in()或ta.rel\u tag\u id in())

谢谢,但它不起作用!即使我使用SELECT DISTINCT,它也会给我两篇文章……是的,就是这样。再次感谢您抽出时间!如果一篇文章只有一次链接了多个标签,我该怎么办?您必须避免显示标签或标签文章表中的字段,或使用and GROUP BY命令。
select a.art_id
    from article a,
    tag_article ta
where a.art_id=ta.rel_art_id
    and (a.art_author in (<your selected users>) or ta.rel_tag_id in (<your selected tags>))