Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.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
Mysql SQL内部连接来自两个表的错误输出_Mysql_Sql - Fatal编程技术网

Mysql SQL内部连接来自两个表的错误输出

Mysql SQL内部连接来自两个表的错误输出,mysql,sql,Mysql,Sql,学生表: ID | Family_ID | Student_name | F_name 族表: ID | F_name | Contact_No 我想从重复家庭id的学生那里获取所有记录。(基本上,我想知道学生表中是否有学生兄弟姐妹记录。) 我这样试过,但输出错误 SELECT students.* FROM students INNER JOIN families ON families.id = students.family_id ORDER BY families.

学生表:

ID | Family_ID | Student_name | F_name
族表:

ID | F_name | Contact_No
我想从重复家庭id的学生那里获取所有记录。(基本上,我想知道学生表中是否有学生兄弟姐妹记录。)

我这样试过,但输出错误

SELECT students.*
FROM students
INNER JOIN families 
    ON families.id = students.family_id
    ORDER BY families.id ASC

如果您只想看到相关人员,则无需将其链接到“家庭”表。您可以使用家庭id对学生进行分组。以下是您的查询:

SELECT * 
FROM Student
WHERE family_id IN (SELECT family_id 
                    FROM students 
                    GROUP BY family_id 
                    HAVING COUNT(1)>1)
ORDER BY family_id

您可以尝试对学生中有多行的家庭id使用联接子查询

SELECT students.*
FROM students
inner join  (
    select students.family_id
    FROM students
    group by students.family_id
    having count(*)>1
) t on t. family_id = students.family_id

如果它们不存在于families表中,并且您希望返回它们,您将使用左联接。否则,请提供有关错误数据的更多详细信息并提供数据examples@Brad我只想要那些您可以显示输入和输出示例的行?顺便说一句,内部连接意味着在您的案例中,两个表中某些相同ID的公共记录。此查询将给你所有家庭ID在家庭表中的学生记录,即使他们的家庭ID没有在任何其他记录中重复。@HimanshuAhuja请附上图片check@Alex你说得对,谢谢你的仔细检查。每天我都会让自己惊讶:)完美的谢谢@Zeki GumusGroup by让一切变魔术了。即使我也尝试了同样的方法,但我的缺点是,我尝试在学生表中包含group by,但很好,这样做可以更好地避免加入。:)@Alex你能告诉我Laravel这个查询的雄辩性吗?@iMatti在查询和子查询中连接不是不必要的吗?为什么不必要。。联接相当于IN子句,但性能更高,我不知道这一点。谢谢你的澄清。@IslamEl Rougy。不客气。。在子查询上使用内部联接总是优于IN子句。。IN子句相当于severl或condition。内部联接不需要在主表上重复以匹配rows@scaisEdge为什么您的查询要检索一些单个ID?