我有2个表的MySQL LEFT JOIN不会返回所有左表行
phonetype:
phonetypeID (PK)
phonetyepe
phone:
phoneID (PK)
peopleID (fK)
phonetypeID (fK)
areacode
number`
对于特定的peopleid我想返回所有phonetypes,如果具有的peopleid数diplay,如果不是空的。喜欢的东西:
phonetype phonetypeID areacode number
company 1 111 11111
fax 2
home 3 222 222222
mobile 4
这是我事先准备好的声明:
$stmt = $conn->prepare("SELECT *
FROM phonetype
LEFT JOIN phone
ON phonetype.phonetypeID=phone.phonetypeID
where phone.peopleID = ?;
");
if (!$stmt) {die(printf("Error: %s.\n", mysqli_stmt_error($stmt)));}
else if (!$stmt->bind_param('i', $peopleID)) {die(printf("Error: %s.\n", mysqli_stmt_error($stmt)));}
但这种方式我只有
phonetype phonetypeID areacode number
company 1 111 11111
home 3 222 222222
我在做什么错? PS这是我第一次加入! 谢谢!我在阅读Gravel,Robbie Averill,Maximus2012和Miken32的答案之后,明白这是一个更好的设计,它有一个专用的表格phonetype,并且在外部使用一个外键电话桌上,认为这是一个完全不同的场景,我问了这个新问题,如果有人认为这是重复的,并且有一种方法可以加入这个问题,我会这样做,再次感谢所有花时间帮帮我吧。)
您能否更清楚一点?你能否把你的两个表格数据放在一起!? – KinjalMistry
很难确定没有数据,但只是用'和'替换'where'看起来可以解决问题。 –
[显示来自数据库的数据以特定顺序:php或mysql?]的可能重复(http://stackoverflow.com/questions/34911866/display-data-from-database-in-a-specific-order-php- or-mysql) – Gavriel