在MySQL数据库中搜索多个表

时间:2015-05-13 03:31:49

标签: php mysql

我的数据库中有几个不同的表(mySQL)。

以下是表格的相关词汇

table_tournaments

  1. tournamentId
  2. tournamnetName
  3. tournamentStatus
  4. table_tournament_results

    1. tournamentId
    2. playerId
    3. playerName
    4. playerRank
    5. tournamnetParticipants
    6. table_players

      1. playerId
      2. playerName
      3.   

        锦标赛表包含锦标赛的相关信息,锦标赛结果表显示该表的结果

        我希望按名称搜索锦标赛表,然后使用返回的结果从锦标赛结果表中获取信息。

            SELECT * FROM `tournaments` `WHERE` `tournamentName` LIKE "%Query%"
        

        我不确定如何解决这个问题,也许我需要通过PHP做一些事情,我们非常感谢所有人的帮助。

2 个答案:

答案 0 :(得分:2)

您可以通过加入操作获得所需的结果。

这是外部联接的示例,返回t'foo'的所有行,其中tournament_name字符串显示为r的一部分,以及任何行匹配tournamentId中的行。

通过在两个表的ON列中存储公共值来建立两个表中行之间的关系。 SELECT t.tournamentId , t.tournamentName , t.tournamentStatus , r.playerId , r.playerName , r.playerRank FROM table_tournaments t LEFT JOIN table_tournament_results r ON r.tournamentId = t.tournamentId WHERE t.tournament_name LIKE '%foo%' ORDER BY t.tournamentId , r.playerId 子句中的谓词指定了确定行"是否匹配"的条件。

t

表名称后面显示的rtournamentId是表别名,我们可以通过在表名前加上表来限定对每个表中列的引用别名和一个点。这使列引用明确无误。 (在t的情况下,MySQL并不知道您是在引用r还是playerId中的列,因此我们限定它以使其明确。我们遵循此所有列引用的相同模式。然后,阅读该语句的人不需要知道哪个表包含列<asp:TextBox ID="txtFile" runat="server"></asp:TextBox>&nbsp;<asp:Button ID="btnBrowse" runat="server" Text="Browse" OnClick="btnBrowse_Click" /> <br /> <br /> <asp:TreeView ID="TreeView1" runat="server" Height="326px" ImageSet="XPFileExplorer" NodeIndent="15" Width="292px"> <ParentNodeStyle Font-Bold="False" /> <HoverNodeStyle Font-Underline="True" ForeColor="#6666AA" /> <SelectedNodeStyle BackColor="#B5B5B5" Font-Underline="False" HorizontalPadding="0px" VerticalPadding="0px" /> <NodeStyle Font-Names="Tahoma" Font-Size="8pt" ForeColor="Black" HorizontalPadding="2px" NodeSpacing="0px" VerticalPadding="2px" /> </asp:TreeView>

答案 1 :(得分:0)

您的查询可能就像这样

SELECT a.*, b.tournamnetName FROM table_tournament_results a 
left join table_tournaments on a.tournamentId=b.tournamentId
WHERE b.tournamnetName LIKE "%Query%"