我正在使用mysql数据库。我有两个表bugs和profiles。Bugs表有两个列(assigned_to、qa_contact),它们通过多对一关系指向配置文件。这些是我的查询的简化版本。
首先,我试图这样做,但它在bugs表中返回qa_contact为null的重复行
select
bug_id,
desc,
dev.assigned_to,
qa.qa_contact
from
bugs,
profiles as dev,
profiles as qa
where
assigned_to = dev.userid
and (qa_con
在mysql数据库中,我存储了5个表。我使用php来存储和检索数据。我想以链接的方式检索/回显/显示这5个表的信息。我把academy_id作为每个表上的外键。每个学院都有一个联系人。有些学院可能有相同的联系人。但我不知道如何才能展示每一所学院的独特信息。如何通过php/mysql选择查询显示这些值?
Academy Name | MOU_ID | Academy_ID | STATUS | Academy Created | Course Name | Course Start Date | Instructor First Name | Contact First Name
表格
CREA
MYSQL
父表
customer
C_Id
First
Last
子表
付款
P_Id
Paid (logical)
C_Id
所有客户记录在支付表中都没有子记录。我想检索所有客户记录,除了那些在支付表where pay = True中有子记录的客户记录。逻辑字段paid中的数据可能是True、False或NULL,因此结果记录集将排除任何已支付的客户。
Left Join为我提供了以下内容:
1 Harry Houdini
2 Johnny Bench
3 Clark Gable Null
4 John Galt False
5 Nick Cage True
我有一个数据库,其中有相当数量的记录,我想查找没有存储用户项的用户:
select `name`
from `users`
where `ID` not in (select distinct `userID` from `userItem`)
这个查询甚至在被MySQL服务器切断之前都不会完成执行。这里有没有什么我不知道的效率低下的地方?
userItem中有200,000条记录,users中有14,000条记录。
查询的explain结果:
1 PRIMARY users ALL NULL NULL NULL NULL 13369 Using wh
我正在使用一些MySQL表,这些表的结构不太友好。
目前我有一个查询,如下所示:
$query = 'SELECT textID, subject FROM articles
WHERE (UPPER(subject) LIKE "%'.$string.'%") AND status = "1"
ORDER BY CASE WHEN subject LIKE "'.$search.' %" THEN 0
WHEN creator LIKE "'.$search.'%
有没有办法检索不返回数据的查询的列名?此查询的结果将为空。有没有办法在没有结果的情况下找到列名?
请注意,我知道使用DESCRIBE和select column_name from information_schema.columns where table_name=‘person’的解决方案;但我需要一个更灵活的解决方案来适应这些多列查询。
还请注意,我仍然使用原始的PDO扩展(所以没有MySQLi,也没有MySQL )。
我正在修改一条MySQL语句,但是在处理左连接和空行时遇到了一些问题。目前我有:
SELECT cs.case_id, cs.child_firstname, gu.*
FROM tblcases AS cs
LEFT JOIN tblguardians AS gu
ON cs.case_id = gu.case_id
WHERE cs.child_firstname = '%craig%' AND gu.firstname LIKE '%sally%'
只要"tblguardians“表中有一个条目,这个查询就可以很好地工作,但是如果没有记录,左连
我有一张具有这种结构的桌子
id integer
parent_id integer
order_n integer
info text
每行可以有一个父行(如果没有父行,则为parent_id;如果没有父行,则为null )和插入顺序(order_n)。每次插入一行时,order_n字段将被设置为相关的"inside his parent“。因此,第一级的两行将分别为order_n =1和order_b = 2。但新行“内部”行1将为order_n =1
示例
id parent_id order_n info
1 null
我使用以下查询:
select count(*) from Table1 where CurrentDateTime>'2012-05-28 15:34:02.403504' and Error not in ('Timeout','Connection Error');
令人惊讶的是,此语句不包括具有错误值的行,因为NULL.My的目的是只过滤具有‘超时’(或)‘连接错误’的错误值的行。我需要提供一个额外的条件( OR Error is NULL)来检索正确的结果。
为什么MYSQL要过滤掉空值的结果?我原以为IN关键字会返回一个布尔结果
我的一位同事告诉我,执行SQL语句总是会将数据放入数据库服务器的RAM/swap中。因此,选择大型结果集是不切实际的。
我以为这样的代码
my $sth = $dbh->prepare('SELECT million_rows FROM table');
while (my @data = $sth->fetchrow) {
# process the row
}
逐行检索结果集,而不将其加载到RAM。但我在DBI或MySQL文档中找不到任何对此的引用。结果集到底是如何创建和检索的?对于简单的selects和joins,它也是一样的吗?
我有一个疑问:
SELECT count(cp.CxID) as intSmokers
FROM CustPrimarySmoking cp
JOIN Customer c ON cp.CxID = c.CustomerID
WHERE
cp.CxID IN (SELECT CxID FROM CustPrimarySmoking WHERE CxID = cp.CxID LIMIT 1, 9999)
其思想是,计数将基于嵌套查询的结果,该查询将检索除第一条记录以外的该客户的所有记录。
然而,我得到了这个错误,我认为这个错误是非常终结的:
1235 -这个版本的MySQL还不支持“限
DELIMITER $$
CREATE FUNCTION `monthtargetbyuser`(`userId` BIGINT,month VARCHAR(11),year VARCHAR(11)) RETURNS int(11)
BEGIN
DECLARE target,da BIGINT;
set da = year-month;
SET target = (SELECT ifnull(user_target.monthly_target,0) as monthly_target from user_target left join users on users.id
我有一个用于提取MySQL表条目的查询,这取决于用户所做的搜索输入,然后呈现出来。
$abfrage = "SELECT id, motivname, preis, masse, produktart, neu, angebot FROM $db.artikel
INNER JOIN $db.formate ON $db.artikel.format=$db.formate.format
WHERE (UPPER(motivname) LIKE UPPER('%{$keywordAct}%')
OR id LIKE '%{$keywordAct}%'
我有一个独立的表,我们通过每周的作业插入它的数据,并在我们的搜索模块中检索数据。
当我执行下面的select查询时,该表有大约400万条记录(并且会变得更大)--这需要很长的时间(大约15秒)。我正在使用MySql DB。
SELECT
v.venueId,
(SELECT
MIN(totalPerPerson)
FROM
PricingArtifact pa
WHERE
pa.venueId = v.venueId
AND pa.meal
我正在用NodeJS和MySQL编写一个基本的CMS系统。对于WordPress也使用的帖子,我使用的是表结构,即‘post’和'post_meta‘。
“posts”表有以下列..。
id
post_title
post_date
...etc
“post_meta”表有以下列..。
id
post_id - ID of associated post
meta_key
meta_value
我喜欢这种风格,因为它使我的行易于在SQL编辑器中读取,而不必滚动足够长的长度,并根据需要添加额外的元数据。
使用联接(下面的查询),我可以创建一个结果集,它包含来自‘post’的值,以及以
SELECT * FROM left_table OUTER JOIN right_table on left_table.name = righ
t_table.name;
SELECT * FROM left_table FULL OUTER JOIN right_table on left_table.name =
right_table.name;
这两个语句给出了下面的错误。它们不是有效的mysql语句吗?
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresp
我的应用程序类似于Facebook,并且我正在尝试优化获取用户记录的查询。用户记录是他作为src ou dst。src直接在usermuralentry中,dst列表在usermuralentry_user中。
因此,一个条目可以有一个src和多个dst。
我有这些表:
mysql> desc usermuralentry ;
+-----------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | D
我有三个表: post、tag和post_tag。
CREATE TABLE post (
id INT NOT NULL,
title VARCHAR(45) NULL,
PRIMARY KEY (id));
CREATE TABLE tag (
id INT NOT NULL,
tag VARCHAR(45) NULL,
PRIMARY KEY (id));
CREATE TABLE post_tag (
post_id INT NOT NULL,
tag_id INT NOT NULL,
PRIMARY KEY (post_id, tag_id),
这是我的MySQL查询:
SELECT a.hinh, cate.ten
FROM (
SELECT * FORM pro WHERE pro.id IN ( 20, 21 )
) AD a
INNER JOIN cate c
ON a.cateid = c.cate.id
但
SELECT a.hinh, cate.ten
FROM pro AS a
INNER join cate c
on a.cateid = c.cate.id
输出正确的结果。
你能告诉我我做错了什么吗?
我有两个MySQL数据库表:一个包含冠军列表,另一个记录标题更改。模式如下所示:
championships
id INT AUTO_INCREMENT PRIMARY_KEY
name VARCHAR(255) NOT NULL UNIQUE
rank INT(2) NOT NULL DEFAULT '1'
title_history
id INT AUTO_INCREMENT PRIMARY_KEY
championship INT FOREIGN_KEY REFERENCES (championships.id)
winner VARCHAR(255) NOT NULL
我有以下两个表quote(date,market,ticker,close)和scenario(date1,date2,period,market,ticker,ratio)。我已经编写了下面的左连接查询,除了一个问题之外,它可以做我想做的事情:
SELECT S.date1 AS date1,
S.date2 AS date2,
S.period AS period,
Q.market AS market,
Q.ticker AS ticker,
Q.close * EXP(S.ratio) AS scena
我有以下两个mysql表:
mysql> desc subscriptions;
+------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+----------------+
| id | int(6) | NO | PRI | NUL
我正在尝试使用从数据库中检索数据,但将其限制为每个视图一定数量的项目。但是我得到了上面提到的错误。我创建了以下函数来检索数据:
//function to display jobs
function display_jobs($start,$per_page)
{
//Select the data from the database, but limit it to the number of item per page
$query = "SELECT a.`title`,
a.`vacancyid`,