php - 我应该在这里使用什么样的 JOIN?

标签 php sql mysql html database

我是 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/

相关文章:

PHP Google App Engine YAML 找不到目录

php - 文本框数组仅显示数据库中字符串的第一个单词

php - php类中的私有(private)静态变量

python - mysql左连接: data from left table duplicated for every match

php - 数据库和 php 调试器

mysql - Sequel Pro 使用 Docker Mysql 容器出现 'Connection failed!' 错误

php - 为什么无法使用神奇的 __set() 方法直接访问数组?

sql - 在 Oracle 21c 中为 ALL_OBJECTS.OBJECT_ID 和 ALL_ARGUMENTS.OBJECT_ID 报告了不同的值

MySQL 更新运行缓慢

LAST_INSERT_ID() 变量声明的 mysql 通用语法错误 - 难以分析