我的数据库中有几个不同的表(mySQL)。
以下是表格的相关词汇
table_tournaments
table_tournament_results
table_players
锦标赛表包含锦标赛的相关信息,锦标赛结果表显示该表的结果
我希望按名称搜索锦标赛表,然后使用返回的结果从锦标赛结果表中获取信息。
SELECT * FROM `tournaments` `WHERE` `tournamentName` LIKE "%Query%"
我不确定如何解决这个问题,也许我需要通过PHP
做一些事情,我们非常感谢所有人的帮助。
答案 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
表名称后面显示的r
和tournamentId
是表别名,我们可以通过在表名前加上表来限定对每个表中列的引用别名和一个点。这使列引用明确无误。 (在t
的情况下,MySQL并不知道您是在引用r
还是playerId
中的列,因此我们限定它以使其明确。我们遵循此所有列引用的相同模式。然后,阅读该语句的人不需要知道哪个表包含列<asp:TextBox ID="txtFile" runat="server"></asp:TextBox> <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%"