使用外键时MySQL合并查询

时间:2015-02-07 18:42:46

标签: mysql

是否有一种快速方法可以根据一个表中的约束选择结果,并使用从中获取的外键来选择父表中的结果?或者你只能通过两个单独的查询来做到这一点吗?

所以实现与此相同,但在一个查询中(tableB具有来自tableA的外键):

Query1: SELECT * FROM tableB WHERE columnN LIKE x
Query2: SELECT * FROM tableA WHERE primaryKey LIKE foreignKeyFromQuery1

2 个答案:

答案 0 :(得分:0)

如果您的意思是加入表格,那么您可以这样做:

SELECT table1.column_name, …
FROM table1
JOIN table2 ON join_condition

使用语法join table_to_join on join_condition连接引用一致的表。通常,连接条件类似于ON table1.id = table2.id。这样,组合数据时不会重复行。

答案 1 :(得分:0)

选择表格和其他列中的列以获得单个结果 JOIN 。 你可以用这个:

SELECT <Table>.<Field>, <Table>.<Field> FROM <Table 1> 
INNER JOIN <Table 2> ON <Table 1>.<Primary Key>=<Table 2>.<Foreign Key> 
WHERE <Conditions>

根据您的需要,看起来您需要INNER JOIN:

Query1: SELECT * FROM tableB WHERE columnN LIKE x
Query2: SELECT * FROM tableA WHERE primaryKey LIKE foreignKeyFromQuery1

联接将是这样的:

SELECT * FROM tableB INNER JOIN tableA ON
tableB.primaryKey=tableA.foreignKeyFromQuery1 WHERE columnN LIKE x