Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 仅获取相同的结果以显示在SQL中_Php_Sql_Sql Server - Fatal编程技术网

Php 仅获取相同的结果以显示在SQL中

Php 仅获取相同的结果以显示在SQL中,php,sql,sql-server,Php,Sql,Sql Server,这是我的代码,稍后我将把它放到php中,但目前我正在提供的查询测试程序中使用它。我们正在做凯文·培根的第一级而不是第六级 我的问题如下: SELECT name,year FROM actors JOIN roles ON roles.actor_id = actors.id JOIN movies ON movies.id=roles.movie_id WHERE actors.first_name= 'kevin' AND actors.last_name='bacon' OR actors

这是我的代码,稍后我将把它放到php中,但目前我正在提供的查询测试程序中使用它。我们正在做凯文·培根的第一级而不是第六级

我的问题如下:

SELECT name,year
FROM actors
JOIN roles ON roles.actor_id = actors.id
JOIN movies ON movies.id=roles.movie_id
WHERE actors.first_name= 'kevin' AND actors.last_name='bacon' OR actors.first_name= 'sean' AND actors.last_name='penn'
ORDER BY movies.name;
Animal House 1978
Apollo 13 1995 
Few Good Men, A 1992 
Footloose 1984 
Hollow Man 2000 
JFK 1991 
Mystic River 2003 
Mystic River 2003 
Planes, Trains & Automobiles 1987 
Stir of Echoes 1999 
结果是

SELECT name,year
FROM actors
JOIN roles ON roles.actor_id = actors.id
JOIN movies ON movies.id=roles.movie_id
WHERE actors.first_name= 'kevin' AND actors.last_name='bacon' OR actors.first_name= 'sean' AND actors.last_name='penn'
ORDER BY movies.name;
Animal House 1978
Apollo 13 1995 
Few Good Men, A 1992 
Footloose 1984 
Hollow Man 2000 
JFK 1991 
Mystic River 2003 
Mystic River 2003 
Planes, Trains & Automobiles 1987 
Stir of Echoes 1999 
如何让它只显示神秘河?试试这个

SELECT DISTINCT name,year
FROM actors
JOIN roles ON roles.actor_id = actors.id
JOIN movies ON movies.id=roles.movie_id
WHERE actors.first_name= 'kevin' AND actors.last_name='bacon' OR actors.first_name= 'sean' AND actors.last_name='penn'
ORDER BY movies.name;
SELECT DISTINCT name,year
FROM actors
JOIN roles ON roles.actor_id = actors.id
JOIN movies ON movies.id=roles.movie_id
WHERE (actors.first_name= 'kevin' AND actors.last_name='bacon') OR (actors.first_name= 'sean' AND actors.last_name='penn')
ORDER BY movies.name;
试试这个

SELECT DISTINCT name,year
FROM actors
JOIN roles ON roles.actor_id = actors.id
JOIN movies ON movies.id=roles.movie_id
WHERE actors.first_name= 'kevin' AND actors.last_name='bacon' OR actors.first_name= 'sean' AND actors.last_name='penn'
ORDER BY movies.name;
SELECT DISTINCT name,year
FROM actors
JOIN roles ON roles.actor_id = actors.id
JOIN movies ON movies.id=roles.movie_id
WHERE (actors.first_name= 'kevin' AND actors.last_name='bacon') OR (actors.first_name= 'sean' AND actors.last_name='penn')
ORDER BY movies.name;

首先,将条件分组

WHERE (actors.first_name= 'kevin' AND actors.last_name='bacon') OR 
      (actors.first_name= 'sean' AND actors.last_name='penn')
其次,在
SELECT
关键字后添加
DISTINCT

SELECT DISTINCT ...

后续问题:为什么您只想显示
神秘河?

首先,对条件进行分组

WHERE (actors.first_name= 'kevin' AND actors.last_name='bacon') OR 
      (actors.first_name= 'sean' AND actors.last_name='penn')
其次,在
SELECT
关键字后添加
DISTINCT

SELECT DISTINCT ...

后续问题:为什么你只想展示
神秘河?

我认为你在这里要求的是不同的

DISTINCT关键字只能用于返回不同(不同)的值

试试这个

SELECT DISTINCT name,year
FROM actors
JOIN roles ON roles.actor_id = actors.id
JOIN movies ON movies.id=roles.movie_id
WHERE actors.first_name= 'kevin' AND actors.last_name='bacon' OR actors.first_name= 'sean' AND actors.last_name='penn'
ORDER BY movies.name;
SELECT DISTINCT name,year
FROM actors
JOIN roles ON roles.actor_id = actors.id
JOIN movies ON movies.id=roles.movie_id
WHERE (actors.first_name= 'kevin' AND actors.last_name='bacon') OR (actors.first_name= 'sean' AND actors.last_name='penn')
ORDER BY movies.name;
在where条款中

 WHERE (actors.first_name= 'kevin' AND actors.last_name='bacon') AND (actors.first_name= 'sean' AND actors.last_name='penn')

如果你想知道凯文·培根和肖恩·潘在同一部电影中的位置

我想你要的是不同的

DISTINCT关键字只能用于返回不同(不同)的值

试试这个

SELECT DISTINCT name,year
FROM actors
JOIN roles ON roles.actor_id = actors.id
JOIN movies ON movies.id=roles.movie_id
WHERE actors.first_name= 'kevin' AND actors.last_name='bacon' OR actors.first_name= 'sean' AND actors.last_name='penn'
ORDER BY movies.name;
SELECT DISTINCT name,year
FROM actors
JOIN roles ON roles.actor_id = actors.id
JOIN movies ON movies.id=roles.movie_id
WHERE (actors.first_name= 'kevin' AND actors.last_name='bacon') OR (actors.first_name= 'sean' AND actors.last_name='penn')
ORDER BY movies.name;
在where条款中

 WHERE (actors.first_name= 'kevin' AND actors.last_name='bacon') AND (actors.first_name= 'sean' AND actors.last_name='penn')

如果您想知道Kevin Bacon和Sean Penn在同一部电影中的位置

如果我正确理解了您的问题,您将尝试查找包含Sean Penn
和Kevin Bacon
的电影列表。如果是这样,那么您需要在查询中使用actors和roles表两次

SELECT
    movies.name,
    movies.year
FROM
    actors AS actor2 INNER JOIN roles AS role2 ON actor2.ID = role2.actor_id
           INNER JOIN actors AS actor1 INNER JOIN roles AS role1 ON actor1.ID = role1.actor_id
                INNER JOIN movies ON role1.movie_id = movies.ID ON role2.movie_id = movies.ID
WHERE
    actor1.first_name= 'kevin' AND actor1.last_name='bacon'
        AND
    actor2.first_name= 'sean' AND actor2.last_name='penn'
ORDER BY movies.name;

如果我正确理解了你的问题,那么你是在试图找到包含肖恩·潘(Sean Penn)和凯文·培根(Kevin Bacon)的电影列表。如果是这样,那么您需要在查询中使用actors和roles表两次

SELECT
    movies.name,
    movies.year
FROM
    actors AS actor2 INNER JOIN roles AS role2 ON actor2.ID = role2.actor_id
           INNER JOIN actors AS actor1 INNER JOIN roles AS role1 ON actor1.ID = role1.actor_id
                INNER JOIN movies ON role1.movie_id = movies.ID ON role2.movie_id = movies.ID
WHERE
    actor1.first_name= 'kevin' AND actor1.last_name='bacon'
        AND
    actor2.first_name= 'sean' AND actor2.last_name='penn'
ORDER BY movies.name;

你想知道凯文·培根和肖恩·潘在同一部电影中的位置,对吗?你想知道凯文·培根和肖恩·潘在同一部电影中的位置,对吗?