相关疑难解决方法(0)

删除加入MySQL

这是创建表的脚本:

CREATE TABLE clients (
   client_i INT(11),
   PRIMARY KEY (client_id)
);
CREATE TABLE projects (
   project_id INT(11) UNSIGNED,
   client_id INT(11) UNSIGNED,
   PRIMARY KEY (project_id)
);
CREATE TABLE posts (
   post_id INT(11) UNSIGNED,
   project_id INT(11) UNSIGNED,
   PRIMARY KEY (post_id)
);
Run Code Online (Sandbox Code Playgroud)

在我的PHP代码中,删除客户端时,我想删除所有项目帖子:

DELETE 
FROM posts
INNER JOIN projects ON projects.project_id = posts.project_id
WHERE projects.client_id = :client_id;
Run Code Online (Sandbox Code Playgroud)

该职位表没有外键client_id,唯一的project_id.我想删除已通过的项目中的帖子client_id.

现在这不起作用,因为没有删除任何帖子.

mysql

477
推荐指数
8
解决办法
28万
查看次数

186
推荐指数
5
解决办法
26万
查看次数

使用关键字vs ON子句 - MYSQL

可能重复:
MySQL ON vs USING?

查询1:

SELECT *
FROM users
JOIN orders ON (orders.user_id = users.user_id)
WHERE users.user_id = 1;
Run Code Online (Sandbox Code Playgroud)

查询2:

SELECT *
FROM users
JOIN orders USING (user_id)
WHERE user_id = 1;
Run Code Online (Sandbox Code Playgroud)

我想加入订单和用户表来获取某些数据.它工作正常.我的问题是,因为两个查询输出相同的结果集,它是否相同?哪一个更有效率?哪一个对性能有好处?哪一个是最佳做法?

mysql sql

42
推荐指数
1
解决办法
7万
查看次数

获取MySQL中每个月的最后一条记录....

我在编写MySQL查询时遇到问题.我在DB中有以下字段

id     created_on            status
1      2011-02-15 12:47:09    1 
2      2011-02-24 12:47:09    1
3      2011-02-29 12:47:09    1
4      2011-03-11 12:47:09    1
5      2011-03-15 12:47:09    1
6      2011-03-22 12:47:09    1
7      2011-04-10 12:47:09    1
8      2011-04-11 12:47:09    1
Run Code Online (Sandbox Code Playgroud)

我需要select the last record of each month.这是为了month FEB record # 3 month MARCH record # 6 和为month APRIL record # 8

请帮我.....

提前致谢.....

php mysql database

15
推荐指数
2
解决办法
6148
查看次数

MySQL中表连接中"using"和"on"之间的区别是什么?

这是

... T1 join T2 using(ID) where T2.VALUE=42 ...
Run Code Online (Sandbox Code Playgroud)

同样的

... T1 join T2 on(T1.ID=T2.ID) where T2.VALUE=42 ...
Run Code Online (Sandbox Code Playgroud)

对于所有类型的连接?

我的理解using(ID)是它只是简写on(T1.ID=T2.ID).这是真的?


现在换另一个问题:

以上是一样的

... T1 join T2 on(T1.ID=T2.ID and T2.VALUE=42) ...
Run Code Online (Sandbox Code Playgroud)

我不认为这是真的,但为什么呢?如果在where子句中,on子句中的条件如何与join相互作用?

mysql sql join

13
推荐指数
3
解决办法
2万
查看次数

在 SQL 中,为什么这个 JOIN 两次返回键列?

如果这是一个愚蠢的问题,我很抱歉,但我似乎无法理解它。我对 SQL 相当陌生,这种行为在 R 或 Pandas 或我习惯使用的其他东西中会很奇怪。

基本上,我在两个不同的数据库中有两个表,有一个公共键user_id。我想加入所有列

SELECT * FROM db1.first_table t1 
JOIN db2.second_table t2 
ON t1.user_id = t2.user_id
Run Code Online (Sandbox Code Playgroud)

太好了,它有效。除了有两个(相同的)列称为user_id. 这并不重要,除了我在 pyspark 中执行此操作时,当我尝试将连接表导出到平面文件时,我收到一个错误,即其中两列具有相同的名称。对此有解决方法,但我只是想知道是否有人可以解释为什么连接返回 user_id列。它似乎是一个内部连接,因此根据定义,列是相同的。为什么它会同时返回?

作为一个附带问题,是否有一种简单的方法可以避免这种行为?

提前致谢!

sql pyspark-sql

5
推荐指数
1
解决办法
2679
查看次数

如果有2个具有相同名称的列,如何在左连接中选择列?[MySQL的]

我已经LEFT JOIN从我的数据库中获取了2个表中的值.
查询是这样的:

SELECT *
FROM thread
  LEFT JOIN comments ON thread.id_thread = comments.id_thread
WHERE id_type = '1'
ORDER BY data DESC, hour DESC
Run Code Online (Sandbox Code Playgroud)

然后我以这种方式输出值:

<?

while($row = mysqli_fetch_array($query))
{
echo '<div class="col-md-1"></div>';
echo '<div class="col-md-11">';
echo  $row['title'] ."<br><br>".$row['content']."<br><br>";
echo  $row['content_com'];
echo '<div class="col-md-2 pull-right">'. "date: ".$row['data']."<br>"."author: ".'<a href ="/user.php?id='.$row['username'].'">'.$row['username'].'</a>'.'</div>' ."<br><br>";
echo '<form role="form" action="commit.php" method="post"><div class="col-md-offset-1 col-md-9"><input class="form-control" type="text" name="comm"><input type="hidden" name="thread_id" value="'.$row['id_thread'].'"></div></form> <br><br><hr><br>';
echo '</div>';
}

mysqli_close($connect);
?>
Run Code Online (Sandbox Code Playgroud)

然后在commit.php(表单操作)中:

<?php
session_start();

  if(isset($_SESSION['id']))
  {
    $servername = "mysql9.000webhost.com"; …
Run Code Online (Sandbox Code Playgroud)

php mysql left-join

3
推荐指数
1
解决办法
444
查看次数

标签 统计

mysql ×5

sql ×4

join ×2

php ×2

database ×1

left-join ×1

natural-join ×1

pyspark-sql ×1