我是 MySql 中 JOINS 的新手。
我有六个表:t1、t2、t3、t4、t5、t6。
我还有一个主表:main_table
。
共有 7 张 table !
所有表的第一列称为classified_id
。
如果用户搜索“cars”,则主表将匹配表 t1(即 cars 表)中的所有内容,其中两个表中的classified_id 相同。
所以:
SELECT * FROM main_table, t1 WHERE main_table.classified_id=t1.classified_id
这很好用,尽管我不确定这是加入这里的方式。对我来说,性能是一个问题!
但是,这是我的问题。
每当搜索所有分类时,我都需要将main_table.classified_id
与其他表classified_id
列进行匹配,并获取其中的每个分类。
这个查询应该如何组成?
SELECT * FROM main_table, t1, t2, t3, t4, t5, t6 // I have this so far which is not much!
如果您需要更多意见,请询问,我将更新此问题。
谢谢
编辑: 表格设置:
main_table: t1:
ID(PK) ID (PK)
classified_id -> 25 classified_id -> 25
category -> CARS year -> 1997
最佳答案
如果该行存在于所有表中(即每个表都有一行对应于特定的classified_id),那么您将使用内部联接:
SELECT
m.classified_id
,m.category
,t1.year
,........
FROM
main_table m
INNER JOIN t1 ON m.classified_id = t1.classified_id
INNER JOIN t2 ON m.classified_id = t2.classified_id
INNER JOIN t3 ON m.classified_id = t3.classified_id
INNER JOIN t4 ON m.classified_id = t4.classified_id
INNER JOIN t5 ON m.classified_id = t5.classified_id
INNER JOIN t6 ON m.classified_id = t6.classified_id
如果该行并不存在于每个表中,那么您将使用 LEFT JOINS 以便不会删除行
关于php - 我应该在这里使用什么样的 JOIN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2311680/