Так я это делаю (есть много способов):
Пример:
ШАГ 1
<?php
$servername = "localhost";
$username = "";
$password = "";
$dbname="";
$conn = new mysqli($servername, $username, $password,$dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT id, name ,image FROM phone";
$result = $conn->query($sql);
while($row =$result->fetch_assoc()){
$v[]=$row;
}
echo json_encode($v);
$conn->close();
?>
ШАГ 2
function showUser(fnc) {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
// STEP 3
var p=JSON.parse(this.responseText);}
}
}
Вы можете избавиться от дубликатов с помощью ключевого слова DISTINCT
:
SELECT DISTINCT parent FROM Parent parent JOIN parent.child child WHERE ...
EDIT: ключевое слово DISTINCT
используется для повторного копирования дубликатов из результатов запроса, независимо от причины существования этих дубликатов. Иногда причиной являются дубликаты записей БД. Но чаще, дубликаты являются следствием JOIN
заявлений, поэтому ваш прецедент является полностью законным.
Тем не менее, вы можете избежать явных объединений и ключевого слова DISTINCT
, сделав отношение двунаправленным. Затем вы можете использовать неявные соединения посредством навигации:
SELECT parent FROM Parent parent WHERE parent.children...