- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 4 个表,如下所述:
auth_user_profiles(包含用户详细信息的表)
CREATE TABLE IF NOT EXISTS `auth_user_profiles` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`first_name` varchar(255) NOT NULL,
`last_name` varchar(255) NOT NULL,
`birthdate` int(11) NOT NULL,
`relationship` smallint(6) NOT NULL COMMENT '1-single 2-married 3-Engaged 4- Separated 5- Divorced 6-Other',
`address` varchar(255) NOT NULL,
`city` varchar(50) NOT NULL,
`zipcode` int(11) NOT NULL,
`phone_no` char(12) NOT NULL,
`country` int(11) NOT NULL,
`work` varchar(255) NOT NULL,
`registeredip` char(15) NOT NULL,
`registerdate` int(11) NOT NULL,
`profileimage` varchar(200) NOT NULL DEFAULT 'default',
`gender` smallint(6) NOT NULL,
`profession` varchar(50) NOT NULL,
`aboutme` varchar(250) NOT NULL,
`referral_balance` decimal(10,2) NOT NULL,
`website` varchar(255) DEFAULT NULL,
`google_open_id` varchar(256) DEFAULT NULL,
`yahoo_open_id` varchar(256) DEFAULT NULL,
`facebook_id` varchar(256) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=22 ;
INSERT INTO `auth_user_profiles` (`id`, `user_id`, `first_name`, `last_name`, `birthdate`, `relationship`, `address`, `city`, `zipcode`, `phone_no`, `country`, `work`, `registeredip`, `registerdate`, `profileimage`, `gender`, `profession`, `aboutme`, `referral_balance`, `website`, `google_open_id`, `yahoo_open_id`, `facebook_id`) VALUES
(1, 1, 'dfdfa', 'ddfm', 638649000, 1, 'fghfllgdfg', 'kdddd', 9887888, '25896589518', 67, 'NNNooo', '127.0.0.1', 1393409056, 'cind.jpg', 1, '', 'sssssssppp', 34.03, NULL, 'https://www.google.com/accounts/o8/id?id=AItOawlUhpWgJhYxjlgg8UjhsKR0u40IvYQrGZ0', 'https://me.yahoo.com/a/Yl_iKDxqkIJIvZ7y5KHTBdkNDw2L#79ed5', NULL),
(2, 2, 'Kichu', 'K', 0, 0, '', '', 0, '8958698565', 20, '', '127.0.0.1', 1394014161, 'default', 0, '', '', 0.00, NULL, NULL, NULL, NULL);
video(存储视频详细信息的表)
CREATE TABLE IF NOT EXISTS `video` (
`videoid` int(11) NOT NULL AUTO_INCREMENT,
`videocode` varchar(20) NOT NULL,
`title` varchar(250) NOT NULL,
`videotype` smallint(6) NOT NULL COMMENT '0-main or 1-trailer',
`category` int(11) NOT NULL,
`length` int(11) NOT NULL,
`associatedvideo` int(11) NOT NULL COMMENT 'trailer link',
`videolink` varchar(255) NOT NULL,
`videothumbnail` varchar(250) NOT NULL,
`uploaderid` int(11) NOT NULL,
`description` text NOT NULL,
`views` int(11) NOT NULL,
`likes` int(11) NOT NULL,
`dislikes` int(11) NOT NULL,
`permission` smallint(6) NOT NULL COMMENT '0-pending 1-approved 2-rejected',
`genre` int(11) NOT NULL,
`language` int(11) NOT NULL,
`keywords` varchar(256) NOT NULL,
`ticket_price` varchar(50) NOT NULL,
`added_on` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`videoid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;
INSERT INTO `video` (`videoid`, `videocode`, `title`, `videotype`, `category`, `length`, `associatedvideo`, `videolink`, `videothumbnail`, `uploaderid`, `description`, `views`, `likes`, `dislikes`, `permission`, `genre`, `language`, `keywords`, `ticket_price`, `added_on`) VALUES
(1, '', 'Video 1', 0, 0, 10, 0, 'teamwork.mp4', 'images (1).jpg', 1, 'The first video uploaded.', 0, 0, 0, 1, 11, 2, 'cartoon', '', '2014-04-28 12:16:31'),
(2, '', 'dddddd', 0, 0, 10, 0, 'video.mp4', 'images (6).jpg', 1, 'vc fdsdf sdfsdf dfgdf sdfd ghg.', 0, 0, 0, 1, 6, 2, 'dfgfdg sd fsdf', '', '2014-04-28 12:46:17'),
(3, '', 'asdasfsd', 0, 0, 10, 5, 'video.mp4', 'images_(6).jpg', 1, 'dg', 282, 1, 0, 1, 5, 2, 'tdgfg', '11.2', '2014-04-28 12:54:17'),
(4, '', 'asedas sfgv', 0, 0, 66, 0, 'teamwork.mp4', 'images (8).jpg', 1, 'hdgh xdg fg dfgdf', 11, 0, 0, 1, 11, 2, 'video ', '', '2014-04-28 13:00:46'),
(5, '', 'sdfftgesgsdfgsd', 1, 0, 33, 3, 'test.mkv', 'images (2).jpg', 0, 'fgdfg', 242, 0, 0, 1, 5, 2, 'fdgdfg,video', '12.99', '2014-04-29 06:18:32');
ticket(存储视频票证详细信息的表)
CREATE TABLE IF NOT EXISTS `ticket` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`video_id` int(11) NOT NULL,
`ticket_key` varchar(100) NOT NULL,
`attempt` smallint(6) NOT NULL,
`generated_on` int(11) NOT NULL,
`status` smallint(6) NOT NULL COMMENT '0-new 1-expired',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;
INSERT INTO `ticket` (`id`, `user_id`, `video_id`, `ticket_key`, `attempt`, `generated_on`, `status`) VALUES
(1, 1, 5, '0b9d4d5aee', 0, 1399262972, 0),
(2, 1, 5, '1f5de2cde3', 0, 1399263032, 0),
(3, 1, 5, 'ba2376bb21', 0, 1399263036, 0),
(4, 1, 2, 'd571360f37', 0, 1399267971, 0),
(5, 1, 5, '99d98364e4', 0, 1399276280, 0),
(6, 1, 5, '290486a5f5', 1, 1399281061, 0),
(7, 1, 5, 'cccc1c72ab', 1, 1399281148, 0);
sendticket(将票赠送给 friend 时存储详细信息的表)
CREATE TABLE IF NOT EXISTS `sendticket` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`ticketid` int(11) NOT NULL,
`sendby_id` int(11) NOT NULL,
`sendto_id` varchar(60) NOT NULL,
`send_on` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
INSERT INTO `sendticket` (`id`, `ticketid`, `sendby_id`, `sendto_id`, `send_on`) VALUES
(1, 2, 1, '10', 1399276280),
(2, 4, 2, 'sdasd@fjjgf.com', 1399276280);
我需要的是获取赠送给我的门票的详细信息。我正在使用以下查询,但即使我没有收到任何票证,它也会返回记录。
$userid=1;
$query=$this->db->query("select s.send_on,s.sendby_id,t.ticket_key,t.video_id,a.first_name,a.last_name,v.title,v.videothumbnail from sendticket as s LEFT JOIN ticket as t ON s.ticketid=t.id
LEFT JOIN auth_user_profiles as a ON a.user_id=s.sendby_id LEFT JOIN video as v ON t.video_id=v.videoid and s.sendto_id=$userid order by s.send_on desc");
这里我希望获得票的详细信息、购买票的视频详细信息以及赠送我票的用户的详细信息,即 sendticket 中的 sendby_id em>表。目前我没有任何礼品票,所以它应该返回空记录。但它现在返回的记录与我的要求不符。
我知道左连接在这种情况下不起作用。我尝试使用 INNER JOIN 和 LEFT JOIN。但它没有用。谁能帮我解决这个问题?提前致谢。
最佳答案
您正在使用 ON()
子句(和 s.sendto_id=$userid)过滤您的记录,这将只为表过滤记录,即在正确的位置它不会过滤整个结果集,您得到的结果是由于您使用的是 LEFT 连接,对于您关注的结果集,您需要使用 WHERE
子句
SELECT
s.send_on,
s.sendby_id,
t.ticket_key,
t.video_id,
a.first_name,
a.last_name,
v.title,
v.videothumbnail ,
s.sendto_id
FROM
sendticket AS s
LEFT JOIN ticket AS t
ON s.ticketid = t.id
LEFT JOIN auth_user_profiles AS a
ON a.user_id = s.sendby_id
LEFT JOIN video AS v
ON t.video_id = v.videoid
WHERE s.sendto_id = 1
ORDER BY s.send_on DESC
因此,如果我检查 s.sendto_id = 1
,则没有发送 id 1 的票证,但如果您想测试现有票证,您可以尝试使用 s.sendto_id = 10
one thing is confusing regarding your table structure for sendticket ,i saw values in column sendto_id i.e(10 ,sdasd@fjjgf.com) you are saving emails and ids which i guess is not a good idea ,also if you are getting the user ids from request then i recommend you to use codeigniter's Active record library
根据评论编辑
I want to get the tickets which are purchased by me and not yet gifted to any other and also those tickets that are gifted to me in a single query
下面是两种方式,但两种解决方案都使用 UNION
第一个查询只是简单地获取id为1的用户购买的门票,并且没有来自sendticket
的记录,其中sendby_id
来自同一用户,union之后的查询是赠送那些赠送给该用户的门票
SELECT * FROM `ticket` t
WHERE NOT EXISTS (
SELECT 1 FROM `sendticket` s
WHERE s.`ticketid` = t.`id`
AND s.`sendby_id` =1
)
AND t.user_id =1
UNION
SELECT t.* FROM `ticket` t
JOIN sendticket s ON(s.`ticketid` = t.`id`)
WHERE s.`sendto_id` =1
SELECT t.* FROM `ticket` t
LEFT JOIN sendticket s ON(s.`ticketid` = t.`id` AND s.`sendby_id` =1)
WHERE s.`sendby_id` IS NULL AND t.user_id =1
UNION
SELECT t.* FROM `ticket` t
JOIN sendticket s ON(s.`ticketid` = t.`id`)
WHERE s.`sendto_id` =1
关于php - 内连接和左连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23487061/
这个问题已经有答案了: Declaring multiple object pointers on one line causes compiler error (5 个回答) 已关闭 6 年前。 l
我目前正在学习语言处理器,经常出现的一个话题是语法中元素的使用方向。从左到右或从右到左。 我理解这个概念,但似乎有很多方法可以编写这些规则,我不确定它们是否都相同。到目前为止我看到的是: 右/左递归,
我有一个很长的线性(分支不多)流程图,在 graphviz 中显示为要么太高而无法放在单个页面上,要么太宽(如果方向是从左到右) 是否有一种简单的方法可以让 graphviz 以从左到右,然后向下,然
我一直摸不着头脑,但运气不好。设计器有一个包含 3 栏的站点、两个侧边栏和一个主要内容区域。 专为桌面设计,左栏、主要内容、右栏。但是,在较小的设备上,我们希望首先堆叠主要内容。 所以通常情况下,你可
我想要从上到下和从左到右组织的 css block 。 为了更好地解释这是一张图片,其中包含我到目前为止所获得的内容以及我希望使用 CSS 实现的内容: 代码如下: HTML: 1 2 3 4 5
当我问this question时,答案之一(现已删除)建议Either类型对应Curry-Howard correspondence中的XOR而不是OR,因为它不能同时是Left和Right。 真相
我有一个程序,如果用户按住向左或向右箭头键, Angular 色会逐渐朝那个方向加速,并最终达到最大速度。松开按键后, Angular 色逐渐减速,直至完全停止。 我的右方向键没问题,但左方向键坏了。
今天很简单的一个。我有一个专栏,我们称之为标题,有一堆项目标题。我需要从“:”的左侧拉出所有内容并进行左/右修剪(稍后我将在连接中使用它,但我现在只需要一个包含新数据的列) .下面是当前列的示例: 这
我正在尝试将图表中的列与左侧对齐。默认情况下,它们位于中间。 我在 API 文档中找不到任何关于此的信息。 Here是一个 jsFiddle 测试。 最佳答案 在 highcharts api 中,您
左旋转进位和右旋转进位指令有哪些实际用途? 在我的汇编课上,我们无法想出一个有用的好例子。 最佳答案 如果您想将位从一个操作数移出并移入另一个操作数: SHL EAX, 1 ; mov
我有一个查询,它使用 eqjoin 从两个不同的表返回以下数据。我想将 left 和 right 结合起来,而不是执行 zip() (重写 name > 和 joined_at),我想将右侧对象的属性
我使用 firebase API。发送和检索消息。但是,我在尝试为发送者/检索者设置布局时遇到麻烦,以便消息将左/右对齐。目前我只有发送者/检索者都使用的一种布局,但不确定如何设置不同的布局。 pub
我的菜单基本上是一个水平项目滑动条。所有菜单项都有特定的默认 CSS 属性。我希望这些项目在到达主容器的中心时更改其大小和左/右边距,并在离开主容器(或位于主容器之外)时重置为默认值。请参阅我的原理图
我有一个引用表,在这个表中有 3 个字段(Id、User1、User2)。 User2 字段可以为空,但我们在不使用时使用 0。 当我执行下面的 Linq 查询时,User2 == 0 的记录不是结果
不知道如何解决这个问题。 我有两个表结果和受访者 我需要查明受访者表中是否有任何行具有completion =“Complete”,但它们的respondent_id(在结果表和受访者表中)不在结果表
我正在尝试访问三个表以获得类似这样的内容: +------+------+------+ | ITEM | PCS | CSS | +------+------+------+ | 1099 |
left 和 right join 有区别吗,下面的sql 语句结果一样,但是两者的性能是一样的吗? SELECT count(*) FROM writers RIGHT JOIN blogs O
当我使用 LEFT() 使用以下代码从数据库中获取值时 $select="SELECT LEFT(description,500) FROM tbl_news where id='$id'"; $qu
当我将鼠标悬停在水平导航菜单上的页面名称上时,相关子页面会 float 在下方。 目前这些显示居中,我如何对齐它们以便它们向左对齐(与导航菜单标题名称一致)。 你可以去看到这个 http://79.1
在下面的引导网格示例中,它使用 col-sm 和 col-sm-push/pull。col-sm-push 指定了左/右值(偏移量)。 我不太清楚它是如何工作的。 第二个 float 元素来到第一个
我是一名优秀的程序员,十分优秀!