php - 我如何在 mysql php 中加入 3 个表

标签 php mysql join

我有3个表标签,tag_type,user_alert 表结构如下:

 CREATE TABLE  `tags` (
`tag_id` int(11) NOT NULL,
  `tag_name` varchar(255) CHARACTER SET utf8 NOT NULL,
  `tagtype_id` int(11) NOT NULL,
  `status` tinyint(1) NOT NULL,
  `is_deleted` tinyint(1) NOT NULL,
  `created_at` datetime NOT NULL
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;


  CREATE TABLE IF NOT EXISTS `tag_types` (
`tagtype_id` int(11) NOT NULL,
  `tagtype_name_en` varchar(100) CHARACTER SET utf8 NOT NULL,
  `tagtype_name_fr` varchar(100) NOT NULL,
  `display_order` int(11) NOT NULL,
  `tag_color` varchar(50) CHARACTER SET utf8 NOT NULL,
  `status` tinyint(1) NOT NULL DEFAULT '1',
  `is_deleted` tinyint(1) NOT NULL DEFAULT '0',
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ;


  CREATE TABLE IF NOT EXISTS `user_alert` (
`user_alert_id` int(11) NOT NULL,
  `tag_id` int(11) NOT NULL,
  `user_id` int(11) NOT NULL,
  `is_removed` enum('yes','no') DEFAULT 'no',
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;

我已经创建了查询,但它对我不起作用。

select t.tag_name,t.tag_id,ty.tag_color,ty.tagtype_name_en as tagtype_name from tags as t INNER JOIN tag_types as ty ON t.tagtype_id=ty.tagtype_id INNER JOIN user_alert as ua ON ua.tag_id != t.tag_id  where t.tagtype_id='5' and ua.user_id != '14'

我想进行查询 我正在传递 tagtype_id 和 user_id

当我传递tagtype_id时,我可以获得属于该tagtyped_id的所有标签,并且不想选择用户已订阅的标签。

但我做不到。我知道答案很简单,但不知道该怎么做。有人可以帮助我吗?

最佳答案

在JOIN中,必须使用“=”,不要使用“!=”。 您的条件必须适用于 where 语句而不是 join。

关于php - 我如何在 mysql php 中加入 3 个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37430429/

相关文章:

javascript - value() 和 focus() 不起作用

mysql - 是否应该避免向更大的 MySQL 表中添加另一个字段?

mysql - 当列不为空时,使用 SQL 从图库表中选择图像

php - MySQL从一个条件下连接两个表

c# - 如何对自己进行 Linq GroupJoin 以填充子/父属性?

php - 将 MySQL select 语句放在一个类中,将 CRUD 语句放在子类中是不是太过分了?

Javascript 运行两次而不是一次

php - 在 MySQL 语句中使用下拉菜单和变量进行排序 (PHP)

php - Android Java jSON UTF-8 httpResponse 问题

php - Swift 2.0 - 将 JSON 值从 swift 存储到 php 变量并使用 php echo 显示