我读到了关于的文章,在那里发现了MySQL,决定谁将是第一个加入,我想确切地知道关于MySQL的标准是什么。
我遵循的是MySQL示例和creeate表:
create table a(
col int default null,
index a_index(col)
);
create table b(
col int default null,
index a_index(col)
);
create table c(
col int default null,
index a_index(col)
);
create table d(
我需要做这样的事情(在MySQL中),我使用UNION的尝试直到现在才会起作用。 理论上: SELECT * FROM
tableA A
JOIN tableB B ON A.tableAId = B.tableAId
LEFT JOIN tableC C ON C.tableAId = A.tableAId
LEFT JOIN tableD D ON D.tableAId = A.tableAId
JOIN tableE E
ON (C.tableEId = E.tableEId OR D.tableEId = E.tableEId) 预期的结果是A与B交叉,可选的C与A交叉,可选
我有8张桌子。当从搜索页面触发查询时,所有这8个表中的数据都会被提取出来并显示在结果页面上。我想知道的是,对于这个过程,哪种优化的查询方法是最好的?
我现在做的是:
$result = mysql_query("SELECT * FROM TG_dat,TG_dat1,TG_dat2,TG_dat3 WHERE
TG_dat.web = TG_dat1.web AND TG_dat.web = TG_dat2.web AND TG_dat.web =
TG_dat3.web AND TG_dat.web='".$uri."'")or die(
这个mysql查询已经运行了大约10个小时,并且还没有完成。有些地方出了很大的问题。
这里有两个表(文本和垃圾邮件)。垃圾邮件将垃圾邮件条目的ids存储在我要删除的文本中。
DELETE FROM tname.text WHERE old_id IN (SELECT textid FROM spam);
垃圾邮件只有2列,都是整型的。800K条目的文件大小为几Mbs。这两个int都是主键。
文本有3列。id (prim key),文本,标志。大约1200K条目,大约2.1 2.1大小(大多数垃圾邮件)。
服务器是xeon quad,2G内存(不要问我为什么)。只有apache (为什么?)并且
我有像这样的MySQL表-
候选人- id,姓名
技能- id,姓名
CandSkills -直截了当的
现在,我试图把"Java“作为一种技能,"Salesforce”作为一种技能的所有候选人。在这种情况下,下面的查询效果很好-
select cs.candid from CandSkills cs inner join Skills s on (cs.skillid = s.id)
group by cs.candid where s.name in ('Java', 'Salesforce')
having coun
我的空值对应于mysql中的另一个表,我可以通过如下所示的查询进行选择-
SELECT
s.*,
i.image_id
FROM image_shout s
LEFT JOIN images i ON s.image_id = i.image_id
WHERE i.image_id IS NULL;
现在是否有任何部分外部连接可用,通过它我可以得到相同的结果,比如-
SELECT
s.*,
i.image_id
FROM image_shout s
LEFT OUTER JOIN images i ON s.image_id = i.image
我在MySQL 5.5.31上有一个MYISAM数据库,正在运行以下更新
UPDATE tableA AS a
INNER JOIN tableB AS b
ON((a.id = b.dnum and a.account = b.account)
OR a.id = CONCAT(b.dnum, '\_', b.account, '\_', b.unique))
SET a.status = 0, a.apd = NULL WHERE a.status = 1;
我尝试使用相同的数据集和几乎相同的mysql设置在3台不同的测试机器上运行此查询,查询在1秒
我正在尝试通过匹配它们的模型来从我的products表中提取有关库存项目的其他信息。
我想从while循环where model=$model内的products表中运行另一个查询。在那里,我想让价格等变量显示在我的$inventory_list中
$sql = mysql_query("SELECT * FROM inventory order by model");
// get all the product details
while($row = mysql_fetch_array($sql)){
$model = $row[
如何通过对同一表中字段的计数来选择MySQL表中的值?
示例:
Table users has id, name, password, country
我希望只选择用户数最多的3个国家的所有I,如下所示:
country, id
当我试着这个
WHERE country IN (SELECT country FROM USERS GROUP BY country ORDER BY COUNT(id) DESC LIMIT 3)
我得到了This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME
我有一个MySQL表格,如下所示:
表项:
id item_name contact_id
1 Cocacola 1;3
2 Clothes 2;3
表联系人
id name tel
1 Dona xxx-xxx-xxxxx
2 Maro xxx-zzz-zzzzz
3 Sana yyy-mmm-mmmmm
连接后需要的结果:
id item_name contact_tel
1 Cocacola xxx-xxx-xxxxx, yyy-mmm-mmmmm
2 Clothes xxx-zzz-zzzzz, y
我有4个表格:出货量(200 K记录),商店(45份记录),product_stores (8K记录),地区(698份记录)。以下查询需要很长时间才能执行(12秒):
SELECT `s`. * , `p`.`productCode` , `p`.`productName` , `st`.`name` AS `storeName` , `d`.`name` AS `districtName`
FROM `shipments` AS `s`
JOIN `product_stores` AS `p` ON s.productStoreId = p.id
JOIN `stores` AS `st`
我正在mysql中运行这个查询,即使在等待了几个小时之后,它也不会完成。
select *
from merged as rm
inner join client_Master as E on E.Code = rm.Code
inner join client_loan_details as d on (d.Loan_Account = rm.loanacno or rm.savingacno = d.SavingAccount) and d.id = E.id
group by rm.client_name;
由于表中的行(合并和client_loan_details)为1 000万
我有两个表:表“游戏”和表“玩家”。玩家通过game_id引用游戏。一个游戏可以包含多个玩家。我的应用程序应该与MySQL和SQLite一起工作,并且我没有在这些表上使用外键。
我的应用程序允许通过删除游戏表中的一行来删除游戏。因此,一些玩家可能有一个引用(game_id)到一个不存在的游戏,这对我来说很好。
现在我想删除“孤立的”播放器:任何在播放器中出现的无效GAME_ID都必须删除。如果可能的话,我想在一个查询中完成它。
我用SQLite找到了一个有效的解决方案:
delete
from
player
where
player_id in (
select
我假设在MySQL中执行以下查询:
SELECT `id`, `state`, `city`, `company`, `manager`, `district`, `group`, `subgroup` FROM `data_table` WHERE `id` IN (
SELECT DISTINCT `dataID` FROM `tags_data` WHERE `table` = 'data_table' AND `tagID` IN (
SELECT `id` FROM `tags` WHERE `tag` LIKE '%fruit%'
)
以下查询在mysql 5.6中运行得很好,但在5.5中需要10秒才能执行,我知道在较旧的mysql版本中NOT in子句存在性能问题,但我在较旧的mysql版本中看不到其他方法来处理它,我非常感谢您的任何建议:
SELECT
DISTINCT C.chapter,
J.name
FROM chart as C
INNER JOIN resume as J ON J.serie_id = C.serie_id
WHERE chapter NOT IN
(
SELECT DISTINCT chapter FROM chart WHERE recorded = '0000-0
我知道这是件很愚蠢的事,相信我,我什么都试过了。这是我的最后一招。
我正在尝试运行一个子查询。令人惊讶的是,mysql挂起(尽管它不是一个大查询)。
我试图运行这个查询来返回一个Link_ids列表
select distinct link_id from join_link_object where obj_id = (select group_concat(obj_id) from xalt_object where module_name like '%intel-compilers/2016.0.047%');
+---------+
| link_id |
原始sql查询:
SELECT *
FROM
(SELECT p.id,
p.title,
p.mark,
(SELECT max(created)
FROM comments c
WHERE c.post_id=p.id
AND c.mark=1) AS latest_at
FROM posts p) AS Post
WHERE Post.latest_at IS NOT NULL
ORDER BY latest_at DESC LIMIT 10
我正在尝试用join编写等价的sql查询。我
我有两张表:
film with primary key film_id
actor with primary key actor_id
我现在想填充一个表film_actor(film_id, actor_id),它将每部电影与250个随机演员联系起来。所以每部电影应该有250个不同的演员。
在PostgreSQL中,我会这样做:
insert into film_actor(film_id, actor_id)
select film_id, actor_id
from film
cross join lateral
(
select actor_id
from
在我的应用程序中,我有两个MySQL表,“单位”和“印象”是一对一的关系。我需要从单元表中获取所有广告单元的列表,但也获取每个广告单元的印象计数。
我有两个SELECT查询来完成这项任务(在本例中简化了),首先使用子select:
SELECT
(SELECT COUNT(*) FROM impressions WHERE impression_unit_id = unit_id) AS impressions_count,
unit_id
FROM units;
然后使用GROUP BY:
SELECT
COUNT(impression_id) AS impress
嗨,我有一个下面的mysql查询
SELECT `company`,`type`,`code` FROM `location` WHERE (
SELECT code FROM meter WHERE `meter`.`location_code`=location.code AND meter.code NOT IN (
SELECT meter_code FROM reading
))
我收到一个错误,指出返回了多个行
我可以问为什么/有指导吗?
老实说,其他问题对我也没什么帮助。
我有以下3个MySQL表(如table_name:column_list所示):
tbl_product: id, name
tbl_sales: productid, date
tbl_impressions: productid, date
tbl_products存储可用产品,tbl_sales存储产品的每一次销售,tbl_impressions存储产品的每个印象。我想要找到的产品已经出售,显示,或两种。我对此的尝试查询是:
SELECT prod.name
FROM tbl_product prod
LEFT JOIN tbl_sales sales ON sales.producti